相关概念
MD5(Message-Digest Algorithm 5,信息摘要算法5)加密是一种常见的哈希加密算法,用于产生长达128位
的散列值。它接受任意长度的输入数据
,输出固定长度
的散列值(哈希值),常用于保证信息的完整性和安全性。
MD5算法的基本原理是将输入的字符串通过特定的运算算法处较短的、固定的位数,生成唯一的字符串摘要,长度为32个字符。这个摘要不难被计算,但是,很难找到两个不同的庞大文件其信息摘要相同的情况。
MD5加密的过程包括三个步骤:
- 填充:将明文以512位(64字节)为一组进行填充。
- 初试化:将一个随机的128位(16字节)的数当作初始值,作为第一轮对消息分组的处理。
- 处理:将填充后的数据以512位为一组进行分组,依次进行数据变换,从而生成128位的输出结果(也就是摘要码)。
MD5加密常用于存储用户密码的摘要,因为MD5算法生成的摘要是不可逆的,即无法从生成的摘要中恢复出原始信息
,能有效的保护用户的密码安全。
代码实现
import org.springframework.util.DigestUtils;
//密码比对
//对前端传过来的明文密码进行md5加密处理
password = DigestUtils.md5DigestAsHex(password.getBytes());
if (!password.equals(employee.getPassword())) {
//密码错误
throw new PasswordErrorException(MessageConstant.PASSWORD_ERROR);
}