- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想生成一系列用于 JHipster 的 Spring Security 的用户名/密码。我的计划是将它们插入 src/main/resources/config/liquibase/users.csv,但我无法生成加密密码以进入此文件。
我希望能够做这样的事情:
def encoder = new BCryptPasswordEncoder()
println encoder.encode('admin')
但生成的字符串(“$2a$10$icbkSBY4H/ub8pKAcnYhjeCit3A6e8JszUVZfu74sG6qqrSoT9CYW”)与默认 users.csv 文件中的已知值不匹配($2a$10$gSAhZrxMllrbgj/kkK9UceBPpChGWJA7SYIb1Mqo.n5aRCq1)。/p
有人可以解释一下我在这里缺少什么吗?
谢谢!
--约翰
最佳答案
没关系。 BCrypt 每次都会生成一个新的散列,因为这个字符串的一部分是随机盐。 Bcrypt 编码器可以比较这样的哈希值,因为它知道从哪里得到 salt 和实际的 hash,所以它可以使用这个 salt 加密密码并比较结果使用实际的哈希。
您的 $2a$10$icbkSBY4H/ub8pKAcnYhjeCit3A6e8JszUVZfu74sG6qqrSoT9CYW
包含:
icbkSBY4H/ub8pKAcnYhje
作为盐IjZAgcfl7p92ldGxad68LJZdL17lhWy
作为散列所以首先,即使对于相同的原始密码,每次都可以得到不同的加密密码。二、不需要手动比对,使用PasswordEncoder.matches
您也可以使用任何在线 BCrypt 密码编码器,而不是为此编写代码。有很多。
关于spring-security - 如何生成用于 Hipster 的加密密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33859517/
我是一名优秀的程序员,十分优秀!