把一个任意长度的字节串变换成一定长度的十六进制的大整数,用于确保“信息传输”完整一致。
注意: 字符串的转换过程是不可逆的。
MD5 特点:
- 压缩性: 任意长度的数据,算出的 MD5 值长度都是固定的;
- 容易计算: 从原数据计算出 MD5 值很容易;
- 抗修改性: 对原数据进行任何改动,哪怕只修改一个字节,所得到的 MD5 值都有很大区别;
- 弱抗碰撞: 已知原数据和其 MD5 值,想找到一个具有相同 MD5 值的数据(即伪造数据)是非常困难的;
- 强抗碰撞: 想找到两个不同数据,使他们具有相同的 MD5 值,是非常困难的。
MD5 应用:
- 一致性验证: MD5 将整个文件当做一个大文本信息,通过不可逆的字符串变换算法,产生一个唯一的 MD5 信息摘要;
- 数字签名: 就像每个人都有自己独一无二的指纹,MD5 对任何文件产生一个独一无二的“数字指纹”;
- 安全访问认证: 利用 MD5 来进行文件校验,被大量应用在软件下载站、论坛数据库、系统文件安全等方面。
MD5 加盐:
- MD5 本身是不可逆运算,但是,目前网络上有很多数据库支持反查询;
- MD5 加盐就是在密码哈希过程中添加的额外的随机值;
- 注意: 加盐要足够长,足够复杂。