1. 首页
  2. 课程学习
  3. 专业指导
  4. Spring security BCryptPasswordEncoder密码验证原理详解

Spring security BCryptPasswordEncoder密码验证原理详解

上传者: 2020-09-01 01:40:32上传 PDF文件 57.14KB 热度 20次

即对密码进行加密时调用encode,登录认证时调用matches下面我们来看下BCryptPasswordEncoder类中这两个方法的具体实现1. encode方法可以看到,这个方法中先基于某种规则得到了一个盐值,然后在调用BCrypt.hashpw方法,传入明文密码和盐值salt。所以这里有一个重点:传入的盐值salt并不是最终用来加密的盐,方法中通过salt得到了real_salt,记住这一点,因为后边的匹配方法matches中要用到这一点。这个方法中先对密文字符串进行了一些校验,如果不符合规则直接返回不匹配,然后调用校验方法BCrypt.checkpw,第一个参数是明文,第二个参数是加密后的字符串。这也说明了加密时使用的盐值被写在了最终生成的加密字符串中。BCryptPasswordEncoder使用哈希算法+随机盐来对字符串加密。

用户评论