MD5是信息摘要算法,可以将输入的信息加密转换为128位固定长度的散列值。不少朋友经常使用MD5,但是MD5本身存在一些缺点,这些缺点的存在导致MD5并不是很安全,有可能会带来信息安全问题。
MD5的优点
1、计算速度快,加密速度快,不需要密钥;
2、可以检查文件的完整性,一旦文件被更改,MD5值会改变;
3、防止被篡改,传输中一旦被篡改,计算出的MD5值也会改变;
4、可用于数字签名,防止抵赖,一旦用户的文件被第三方MD5加密,如果以后甲方说这个文件不是他写的,那么当用文件MD5后获得的签名一致,就可以确认;
5、防止看到明文,公司存放密码存放的是MD5值。
MD5的缺点
1、作为散列算法,经过证实,仍然会存在两种不同数据会发生碰撞;
2、MD5的安全性。将用户的密码直接MD5后存储在数据库中是不安全的。
(1)因为用户习惯用容易记住的密码,比如手机号、生日,不法分子容易获取这类密码,这也就是要加盐的原因。
(2)直接MD5存入数据库,如果数据库被盗,通过MD5反查会查到密码,需要随机盐值的配合。
3、很多人使用的密码是常见的组合,攻击者将这些密码的常见组合进行单向哈希,得到一个摘要组合,然后与数据库中的摘