Joh*_*ght 3 spring-security jhipster
我想生成一系列用于 JHipster 的 Spring Security 的用户名/密码。我的计划是将这些插入到 src/main/resources/config/liquibase/users.csv 但我无法生成加密密码以进入此文件。
我希望能够做这样的事情:
def encoder = new BCryptPasswordEncoder()
println encoder.encode('admin')
Run Code Online (Sandbox Code Playgroud)
但生成的字符串 ("$2a$10$icbkSBY4H/ub8pKAcnYhjeCit3A6e8JszUVZfu74sG6qqrSoT9CYW") 与默认 users.csv 文件中的已知值 ($2a$10$gSAhZrxMllrbgj/ChkkK9JANLq1bRa/ChkkK9UqlqlpIpn) 不匹配。
有人可以解释一下我在这里缺少什么吗?
谢谢!
- 约翰
没关系。BCrypt 每次都会生成一个新的哈希值,因为该字符串的一部分是随机盐。Bcrypt 编码器可以比较这样的哈希值,因为它知道从哪里获得salt和实际的hash,所以它可以使用这个salt加密密码并将结果与实际的hash进行比较。
您$2a$10$icbkSBY4H/ub8pKAcnYhjeCit3A6e8JszUVZfu74sG6qqrSoT9CYW包含:
icbkSBY4H/ub8pKAcnYhje 作为盐IjZAgcfl7p92ldGxad68LJZdL17lhWy? 作为哈希所以首先,即使对于相同的原始密码,每次获得不同的加密密码也是可以的。其次,你不需要手动比较,使用PasswordEncoder.matches
您还可以使用任何在线 BCrypt 密码编码器,而不是为此编写代码。有很多。
另见:https : //en.wikipedia.org/wiki/Bcrypt
| 归档时间: |
|
| 查看次数: |
2467 次 |
| 最近记录: |