说明:
(1)为什么写了本篇博客?:在【49:第五章:开发admin管理服务:2;】中,管理员账户密码加密的时候,使用了【org.springframework.security.crypto.bcrypt.BCrypt;】提供的工具类BCrypt,【BCrypt.hashpw("原始密码", BCrypt.gensalt());】来实现;
● 所以,本篇博客就来说明一下MD5、BCrypt密码哈希的内容;
(2)本篇博客参考的文章有:
●【MD5】,MD5的百科;
●【密码存储与传输的那些事儿(一)密码存储概述】、【密码存储与传输的那些事儿(二)bcrypt密码哈希】;该文的作者是【DreamerJ】;
目录
一:MD5原理;
直接去参考【MD5】的维基百科即可;
基本可以这样理解,MD5有这几个特征:
● 信息摘要算法;
● 计算快速;
● 不安全;
● 相同的值,经过MD5处理后的结果是一样的;
二:几种加密策略对比;
参考自 【密码存储与传输的那些事儿(一)密码存储概述】,该问的作者是【DreamerJ】;
三:bcrypt密码哈希;
参考自【密码存储与传输的那些事儿(二)bcrypt密码哈希】,该文的作者是【DreamerJ】;
● 上面演示了如何加密;
● 在【49:第五章:开发admin管理服务:2:管理员登录;】中演示了BCrypt.checkpw()方法,这个方法会去核验密码是否OK;