如何生成用于 Hipster 的加密密码
how to generate encrypted passwords for use with Hipster
我想生成一系列 usernames/passwords 以与 JHipster 的 Spring 安全性一起使用。我的计划是将它们插入 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.n5aNLq1/oRrC).
有人可以解释一下我在这里遗漏了什么吗?
谢谢!
--约翰
没关系。 BCrypt 每次都会生成一个新的散列,因为这个字符串的一部分是随机盐。 Bcrypt 编码器可以比较这样的哈希值,因为它知道从哪里得到 salt 和实际的 hash,所以它可以使用这个 加密密码salt 并将结果与实际 hash.
进行比较
您的 a$icbkSBY4H/ub8pKAcnYhjeCit3A6e8JszUVZfu74sG6qqrSoT9CYW
包含:
icbkSBY4H/ub8pKAcnYhje
作为盐
IjZAgcfl7p92ldGxad68LJZdL17lhWy
作为散列
所以首先,即使对于相同的原始密码,每次都可以得到不同的加密密码。第二,不用手动比较,用PasswordEncoder.matches
您也可以使用任何在线 BCrypt 密码编码器,而不是为此编写代码。有很多。
我想生成一系列 usernames/passwords 以与 JHipster 的 Spring 安全性一起使用。我的计划是将它们插入 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.n5aNLq1/oRrC).
有人可以解释一下我在这里遗漏了什么吗?
谢谢!
--约翰
没关系。 BCrypt 每次都会生成一个新的散列,因为这个字符串的一部分是随机盐。 Bcrypt 编码器可以比较这样的哈希值,因为它知道从哪里得到 salt 和实际的 hash,所以它可以使用这个 加密密码salt 并将结果与实际 hash.
进行比较您的 a$icbkSBY4H/ub8pKAcnYhjeCit3A6e8JszUVZfu74sG6qqrSoT9CYW
包含:
icbkSBY4H/ub8pKAcnYhje
作为盐IjZAgcfl7p92ldGxad68LJZdL17lhWy
作为散列
所以首先,即使对于相同的原始密码,每次都可以得到不同的加密密码。第二,不用手动比较,用PasswordEncoder.matches
您也可以使用任何在线 BCrypt 密码编码器,而不是为此编写代码。有很多。