编程语言
首页 > 编程语言> > Java中MD5加密的几种方式

Java中MD5加密的几种方式

作者:互联网

一、MD5加密概述:

MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。

MD5为不可逆散列算法,可用于存储用户密码,存储后永远不需要知道明文。密码比较时只需将用户输入的密码再次转成MD5码与存储的相比较即可得知用户输入密码是否正确。linux/unix操作系统一般采用MD5进行用户密码加密。

二、Java实现MD5加密的几种方式:

1、Java自带的MessageDigest实现

import java.security.MessageDigest;
/**
 * MD5加密
 */
public class MD5Util {
      //盐,用于混交md5
      private static final String slat = "&%5123***&&%%$$#@";
 
      public static String encrypt(String dataStr) {
            try {
                  dataStr = dataStr + slat;
                  MessageDigest m = MessageDigest.getInstance("MD5");
                  m.update(dataStr.getBytes("UTF-8"));
                  byte s[] = m.digest();
                  String result = "";
                  for (int i = 0; i < s.length; i++) {
                        result += Integer.toHexString((0x000000FF & s[i]) | 0xFFFFFF00).substring(6);
                  }
                  return result;
            } catch (Exception e) {
                  e.printStackTrace();
            }
            return "";
      }
}

2、Spring中的DigestUtils工具类

import org.springframework.util.DigestUtils;
/**
 * MD5加密
 */
public class MD5Util {
      //盐,用于混交md5
      private static final String slat = "&%5123***&&%%$$#@";

      public static String encrypt(String dataStr) throws UnsupportedEncodingException {
            String base = dataStr + slat;
            String md5 = DigestUtils.md5DigestAsHex(base.getBytes("UTF-8"));
            return md5;
      }
}

3、Apache中的DigestUtils工具类

pom.xml中引入:

<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.10</version>
</dependency>

代码实现:

import org.apache.commons.codec.digest.DigestUtils;
/**
 * MD5加密
 */
public class MD5Util {
      //盐,用于混交md5
      private static final String slat = "&%5123***&&%%$$#@";

      public static String encrypt(String dataStr) throws UnsupportedEncodingException {
            String base = dataStr + slat;
            String md5 = DigestUtils.md5Hex(base.getBytes("UTF-8"));
            return md5;
      }
}

标签:加密,String,static,Java,dataStr,MD5,public,md5
来源: https://www.cnblogs.com/ahhhhh/p/14041783.html