一、介绍
理论上讲是不可逆的加密方式,因为MD5是丢失精度加密。
无论多大文件,加密后都是只有32位。
以字节为单位加密。
二、应用
1、可用于下载文件和服务器上的是否一致
2、用户密码使用MD5加密
注册的时候把密码加密成32位字符串后放入数据库中
登录时把提交的密码加密,然后和数据库中的密码对比。
好处:这样,除了用户自己,就没有人知道密码到底是什么,就算直接看到数据库也不知道密码到底是什么。
三、MD5工具类
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5Utils {
//使用MD5算法进行加密
public static String md5(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);// 16进制数字
// 如果生成数字未满32位,需要前面补0
for (int i = 0; i < 32 - md5code.length(); i++) {
md5code = "0" + md5code;
}
return md5code;
}
}