首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >密码散列使用什么?有理由不使用jBCrypt吗?

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

Stack Overflow用户
提问于 2009-03-07 23:34:14
回答 3查看 5.4K关注 0票数 17

我计划在一个新的web应用程序中使用jBCrypt进行密码散列,因为从我所读到的内容来看,它应该是最好的。因为我之前还没有使用过它,所以我正在调查是否有任何理由不使用它。

我有这个:

  • 我还没有在Maven存储库中找到它(在mvnrepository.org上搜索jbcrypt和bcrypt ),因为我希望在可能的情况下使用Maven存储库管理我的依赖关系。如果jBCrypt是最佳的密码哈希解决方案,我将不得不设置我自己的本地存储库,并以这种方式使用它。还是我错过了?也许它就在里面什么地方?
  • 它只在0.2版,但也许它是稳定的,而且低版本号的原因还有其他原因吗?
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-03-08 00:56:12

作为密码的加密算法,jBcrypt可能很好;河豚相对来说很强。尽管Blowfish本身有一些报告的实现缺陷,但我没有发现任何关于jBcrypt的报道。另一方面,Blowfish的测试没有其他算法那么严格,而已知的裂纹-style攻击通常比预期的效果更好,令人惊讶的加密极客。

以下是我的建议:

  • 继续使用jBcrypt,但尽可能保护加密的密码文件--就像在UNIX系统上使用/etc/影子一样。
  • 与尼基尔的建议相反,我会把这些资料放到你的版本控制中,原因有两个:(1)你还会把它们放在哪里,因为你在任何时候都需要它们;(2)因为做jBcrypt的人总是有机会转移到其他事情上去,而且你不想发现自己在送货前就被晃来晃去(这在你发现的时候是不可避免的)。在这种情况下,我会将源代码放入您的版本控制中,就好像它们是您的on代码一样,然后任何更改都可以插入,就像您自己构建了一个新版本一样。没必要比你平时更复杂。
票数 5
EN

Stack Overflow用户

发布于 2009-03-08 06:48:45

至于您对JUnit还不成熟的关注,我建议您建立自己的jBcrypt测试,比较jBcrypt的结果和经过更多验证的Bcrypt,看看是否得到了相同的结果,然后将这些结果贡献给jBcrypt项目。

但我们已经做到了:

..。附带一组JUnit单元测试,以验证库的正确操作和与bcrypt算法的规范C实现的兼容性。

仔细阅读JUnit测试,看看它们是否符合您的满意程度,这是我开始……

票数 2
EN

Stack Overflow用户

发布于 2009-03-08 00:17:50

我怀疑稳定性是否会成为一个问题,因为bcrypt本身已经成熟,而且它的小型标准化包装不会有什么特别之处。我对Damien的另一个bcrypt包装器python-bcrypt很满意,它只在0.1版上。

我不熟悉Maven,但是(异端警报!)对于像bcrypt这样简单的组件,我怀疑您是否需要版本控制。引用该站点时,从v0.1到v0.2的更改是“正确性、错误和API调整(完全向后兼容)”,TODO列表为空。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/622732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档