BCryptPasswordEncoder 的密码长度限制是否超过 72 个字符?
Is BCryptPasswordEncoder's password length limit more than 72 characters?
I saw a post that bcrypt has 72 characters limit. 所以我测试了 Spring 安全性的 BCryptPasswordEncoder
看看会发生什么。我尝试了 1000 多个长度并且它工作正常。甚至没有警告日志。
我尝试了 JavaDoc 和在线文档,但找不到有关输入长度限制的信息。
BCryptPasswordEncoder 的密码长度限制是否超过 72 个字符?如果是这样,我可以将它用于我的 Web 应用程序吗?
似乎BCryptPasswordEncoder
在没有任何警告的情况下裁剪密码。
我试过用 BCrypt
而不是像这样 BCryptPasswordEncoder
。
@Test
public void testBcrypt() throws Exception {
final String pw1_a71 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
final String pw2 = pw1_a71 + "b";
final String pw3 = pw2 + "b";
final String pw4 = "b" + pw2;
final String gensalt = BCrypt.gensalt();
for (final String pw : Arrays.asList(pw1_a71, pw2, pw3, pw4)) {
System.out.println(BCrypt.hashpw(pw, gensalt));
}
}
输出:
aS6TbAreOnBH1ZCdZ.G0WOBxiIEizo92CNeFFBlcg1bxyGa9mMgEu
aS6TbAreOnBH1ZCdZ.G0WO4Pm8wq3zRnVR6szbZynp8DHOq3XCwoW
aS6TbAreOnBH1ZCdZ.G0WO4Pm8wq3zRnVR6szbZynp8DHOq3XCwoW
aS6TbAreOnBH1ZCdZ.G0WOCC3kvOwtnzVpiEmOWvIA6WIKzxi7lhy
I saw a post that bcrypt has 72 characters limit. 所以我测试了 Spring 安全性的 BCryptPasswordEncoder
看看会发生什么。我尝试了 1000 多个长度并且它工作正常。甚至没有警告日志。
我尝试了 JavaDoc 和在线文档,但找不到有关输入长度限制的信息。
BCryptPasswordEncoder 的密码长度限制是否超过 72 个字符?如果是这样,我可以将它用于我的 Web 应用程序吗?
似乎BCryptPasswordEncoder
在没有任何警告的情况下裁剪密码。
我试过用 BCrypt
而不是像这样 BCryptPasswordEncoder
。
@Test
public void testBcrypt() throws Exception {
final String pw1_a71 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
final String pw2 = pw1_a71 + "b";
final String pw3 = pw2 + "b";
final String pw4 = "b" + pw2;
final String gensalt = BCrypt.gensalt();
for (final String pw : Arrays.asList(pw1_a71, pw2, pw3, pw4)) {
System.out.println(BCrypt.hashpw(pw, gensalt));
}
}
输出:
aS6TbAreOnBH1ZCdZ.G0WOBxiIEizo92CNeFFBlcg1bxyGa9mMgEu
aS6TbAreOnBH1ZCdZ.G0WO4Pm8wq3zRnVR6szbZynp8DHOq3XCwoW
aS6TbAreOnBH1ZCdZ.G0WO4Pm8wq3zRnVR6szbZynp8DHOq3XCwoW
aS6TbAreOnBH1ZCdZ.G0WOCC3kvOwtnzVpiEmOWvIA6WIKzxi7lhy