一、介绍
MD5(Message Digest Algorithm 5)是一种广泛使用的加密哈希函数,由罗纳德·李维斯特(Ronald Rivest)于1991年设计。它的主要作用是将任意长度的输入(消息)转换成一个128位(16字节)的哈希值,通常以32位十六进制数字表示,在早期可以作为一种加密手段。
MD5 哈希值是不可逆的,即你不能从MD5哈希值反推出原始密码,因此可以保护原始密码不被直接暴露。
二、代码运用
在瑞吉外卖项目中,将用户密码 "123456"
通过 MD5 哈希算法处理,得到一个32位的十六进制字符串,然后将这个哈希值设置到 employee
对象的密码字段中。
employee.setPassword(DigestUtils.md5DigestAsHex("123456".getBytes()));
三、详细解释
-
这部分将字符串"123456".getBytes()
:"123456"
转换为一个字节数组。getBytes()
方法使用平台的默认字符集,将字符串转换为字节数组。 -
DigestUtils.md5DigestAsHex()
:DigestUtils
是 Spring 框架中的一个实用类,提供了各种加密和哈希函数的静态方法。md5DigestAsHex()
方法用于计算字节数组的MD5哈希值,并将其结果转换为十六进制字符串表示。 -
这部分调用了employee.setPassword(...)
:employee
对象的setPassword
方法,将计算得到的MD5哈希值作为密码存储。这样,明文密码"123456"
在存储之前被转换成了MD5哈希值。