什么是MD5?
MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。
密码散列函数(Cryptographic hash function),又译为加密散列函数,是散列函数的一种。
MD4算法在安全上有大的漏洞,但它对在其后才被开发出来的好几种信息安全加密算法的出现却有着不可忽视的引导作用,比如MD5加密算法.
编码实例
1 加密方法:
1.1 java自带jar工具MessageDigest实现
java.security.MessageDigest
public class MD5Utils {
public static String stringToMD5(String plainText) {
byte[] secretBytes = null;
try {
secretBytes = MessageDigest.getInstance("md5").digest(
plainText.getBytes());
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException("没有这个md5算法!");
}
String md5code = new BigInteger(1, secretBytes).toString(16);
for (int i = 0; i < 32 - md5code.length(); i++) {
md5code = "0" + md5code;
}
return md5code;
}
}
1.2 spring自带的工具DigestUtils实现
org.springframework.util.DigestUtils
DigestUtils.md5DigestAsHex("1234".getBytes())
2 使用方法:
@Test
public void testMd5() throws NoSuchAlgorithmException{
MessageDigest md = MessageDigest.getInstance("MD5");
// java自带工具包MessageDigest
String resultString = MD5Utils.md5("123456");
System.out.println(resultString);
// e10adc3949ba59abbe56e057f20f883e
String resultString1 = MD5Utils.md5("1234");
System.out.println(resultString1);
//81dc9bdb52d04dc20036dbd8313ed055
// spring自带工具包DigestUtils
System.out.println(DigestUtils.md5DigestAsHex("1234".getBytes()));
// 81dc9bdb52d04dc20036dbd8313ed055
}
转载:https://www.cnblogs.com/zhuyeshen/p/11424713.html