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