一、哈希算法
哈希算法,根据碰撞概率,输出的长度越长,就越难产生碰撞,也就越安全。
常用的哈希算法如下:
(1)哈希算法的用途
-
数据加密:哈希算法可以将原始数据转换成不可逆的加密字符串,这个字符串被称为哈希值。哈希值可以用于保护数据的隐私,因为无法通过哈希值推导出原始数据。
-
密码存储:哈希算法可以用于保护密码的存储。通过将密码转换为哈希值并存储哈希值,可以防止攻击者获取用户密码。当用户登录时,输入的密码将与保存的哈希值进行比对,如果匹配则允许用户登录。
-
校验文件的下载。
总之,哈希算法在数据安全、数字证书、数字签名等领域都有广泛的应用。
一、MD5
MD5是一种计算机算法,用于将任意长度的数据(消息)压缩成一个128位(16字节)的哈希值。MD5算法常用于数据完整性校验、数字签名、密码存储等领域。
MD5算法具有以下特点:
- 压缩性:任意长度的数据,算出的MD5值长度都是固定的。
- 唯一性:不同的输入数据会产生不同的输出。
- 不可逆性:无法通过MD5值反推出原始数据。
- 抗修改性:对数据进行微小的修改,MD5值的变化也会很大。
(1)对字符串进行编码
public class Demo01 {
public static void main