密码散列有什么用?有什么理由不使用jBCrypt?

17 java hash crypt bcrypt jbcrypt

我打算在新的Web应用程序中使用jBCrypt进行密码散列,因为它应该是我读过的最好的.因为我在调查之前没有使用它,是否有任何理由不使用它.

我有这个:

  • 我没有在Maven存储库中找到它(在mvnrepository.org搜索jbcrypt和bcrypt),这是一个沮丧,因为我希望尽可能使用Maven存储库管理我的依赖项.如果jBCrypt是密码散列的最佳解决方案,我必须设置我自己的本地存储库并以这种方式提供它.或者我错过了吗?也许它在某处?
  • 它仅在版本0.2,但也许它是稳定的,并且版本号低的原因还有其他原因?

Cha*_*tin 5

jBcrypt可能很适合作为密码的加密算法; 河豚比较强壮.虽然Blowfish本身有一些报道的实施缺陷,但我没有发现任何关于jBcrypt的报道.另一方面,Blowfish的测试几乎没有其他算法那么严重,而且一种破解式的已知plaintxt攻击通常比预期更好,令人惊讶的是加密极客.

所以这就是我的建议:

  • 继续使用jBcrypt,但保护您的加密密码文件到您合理的范围 - 就像在UNIX系统上使用/ etc/shadow一样.
  • 与Nikhil的建议相反,我会将源代码提取到您的版本控制中,原因有两个:(1)您还可以保留它们,因为您每次构建时都需要它们,以及(2)因为jBcrypt 总是有机会将继续发展其他事情,你不想发现自己在交付之前就已经悬空了(当你发现它时不可避免.)在这种情况下,我会将这些资源放入你的版本控制中好像它们是您的代码,然后可以插入任何更改,就像您自己构建了一个新版本一样.不需要比平常更复杂.