我想生成一系列要与JHipster的Spring Security一起使用的用户名/密码。我的计划是将它们插入src / main / resources / config / liquibase / users.csv,但是我无法生成加密密码以进入该文件。
我希望能够做这样的事情:
def encoder = new BCryptPasswordEncoder()
println encoder.encode('admin')
但生成的字符串(“ $ 2a $ 10 $ icbkSBY4H / ub8pKAcnYhjeCit3A6e8JszUVZfu74sG6qqrrTorT9CYW”)与默认users.csv文件($ 2a $ 10 $ gSAhZrxMllrbgj / kkK9USYBP7Ch1)的已知值不匹配。
有人可以解释一下我在这里想念的吗?
谢谢!
- 约翰
没关系。BCrypt每次都会生成一个新的哈希,因为该字符串的一部分是随机盐。Bcrypt编码器可以比较此类哈希,因为它知道从何处获取盐和实际哈希,因此可以使用此盐对密码进行加密并将结果与实际哈希进行比较。
您$2a$10$icbkSBY4H/ub8pKAcnYhjeCit3A6e8JszUVZfu74sG6qqrSoT9CYW
包含:
icbkSBY4H/ub8pKAcnYhje
作为盐IjZAgcfl7p92ldGxad68LJZdL17lhWy
作为哈希因此,首先,即使对于相同的原始密码,也可以每次获取不同的加密密码。其次,您无需手动比较,使用PasswordEncoder.matches
您也可以使用任何在线BCrypt密码编码器,而不用为此编写代码。有很多。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句