MD5的优点:计算速度快,加密速度快,不需要密钥;可以检查文件的完整性,一旦文件被更改,MD5值会改变;防止被篡改,传输中一旦被篡改,计算出的MD5值也会改变;防止看到明文,公司存放密码存放的是MD5值。
MD5的缺点:作为散列算法,经过证实,仍然会存在两种不同数据会发生碰撞;MD5的安全性。将用户的密码直接MD5后存储在数据库中是不安全的。很多人使用的密码是常见的组合,攻击者将这些密码的常见组合进行单向哈希,得到一个摘要组合,然后与数据库中的摘要进行比对即可获得对应的密码。
密码加密
使用工具类的MD5功能方法,加密密码
注册环节:
1.获取用户输入密码 123456
2.调用MD5加密密码,保存新的加密密码到数据库
登录环节:
1.获取用户输入密码 123456
2.调用MD5加密密码
3.结合账号和MD5密码,尝试匹配数据数用户登录信息
密码加盐salt
在原始密码基础之上,生成一个随机的字符串(盐值salt)),拼接后的字符串再次MD5加密。加盐格式:$salt$pass
注册环节:
1. 获取输入密码password1 123456
2.调用工具类,生成一段4位的字符串(盐值salt)
3.调用工具类,加密salt +password1 = password2
4.保存密码pasword2和盐值到数据库
登录环节:
1.根据用户账号查询到密码password和盐值salt
2.拼接用户输入密码salt +password ,MD5加密为passwordMD5
3.对比password和passwordMD5