首先MD5 其实不是真正的加密算法,而 MD5 是散列、哈希算法。不管多长的数据,使用 MD5 运算后得到的都是固定长度,无法再解密为原始数据。所以,MD5 是单向的。
有些 MD5 解密网站使用的是彩虹表。
如果md5+盐方式:
加盐如果不当,还是非常不安全,比如写死加盐或者将一部分用户数据作为盐。
所以,盐最好是随机的值,并且是全球唯一的。(这样就得单独的数据库字段保存盐)
更好的做法:也就是BCrypt来进行密码哈希,BCryptPasswordEncoder。BCrypt 是为保存密码设计
的算法。
“password”: “$2a$10$wPWdQwfQO2lMxqSIb6iCROXv7lKnQq5XdMO96iCYCj7boK9pk6QPC”
//格式为:$
所以说,我们不需要使用单独的数据库字段来保存盐。
- 本文标题: md5加密隐患
- 文章作者: sherryriver(木木三可)
- 发布时间: 2021.10.17
- 本文链接: https://sherryriver.github.io/2021/10/17/md5加密隐患/
- 许可协议: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。