9

BCrypt.net 有几个不同的端口,很难说哪个是“最好的”。

有没有人花时间审查它们并就光顾哪个项目得出任何结论?我最感兴趣的是哪个拥有最活跃的开发者社区。当然,功能集、有效性、简单性和文档也很好:)

这是我能够追踪到的 BCrypt.Net 实现列表:

德里克·斯莱格

据我所知,这是第一个端口,并且有一段时间没有更新。0.1版

谷歌代码

用户将 Derek Slager 的副本发布到 google 代码并进行了一些改进。0.3版

NuGet

Visual Studio 唯一的 NuGet 版本,它是一个没有源代码的编译副本,所以我无法确定它的任何信息。它似乎支持仅在 0.3 版 Google 代码版本中可用的新功能。它没有列出任何支持站点,我不知道它是否是开源的并且没有任何类型的归属(有点粗略)。1.0 版,213 次下载。

代码丛

这似乎是一个完全独立的端口,与 Derek Slager 的端口无关。它似乎有一些半定期更新。版本 R5,140 次下载。

这份清单是否完整?有什么理由选择一个而不是另一个吗?

4

3 回答 3

4

最初于 2013 年 2 月审查了这些内容,并根据 Justin 和 Coulton 的评论信息进行了更新,以反映我目前的使用情况。

其中较新的似乎是安全的,或者至少“没有已知错误”。(还有其他弱点,bcrypt但它们是算法而不是代码相关的。我假设如果你正在使用bcrypt你已经知道这些。)

问题中列出的库都基于 jBCrypt 代码(可能除了 CryptSharp,不知道那里),它在 2010 年 2 月收到了错误修复,以修复“弱熵”安全建议。( http://www.mindrot.org/files/jBCrypt/internat.adv )

分解:

  • BCrypt 的 Codeplex 端口于 2010 年末开始(检查于 12 月),并于 2013 年更新到更新的源。几乎可以肯定它是安全的,并且可以在 NuGet 上使用 (https://www.nuget.org/packages/BCrypt -官方的/)。
  • CryptSharp (http://www.zer7.com/software/cryptsharp) 是一个活生生的、受支持的项目,看起来做得很好,但我没有深入评估它。绝对值得一试。也可在 NuGet (http://www.nuget.org/packages/CryptSharpOfficial/) 上获得。
  • Google 代码版本变更日志表明它包含 2010 年 2 月的“jBCrypt”错误修复。但这有点古老而死气沉沉。
  • Derek Slager 的 2007 端口可能**没有**有这些修复,我认为你应该避免它。

粗略的时间表,基于修订控制变更日志:

  1. Derek Slager 于 2007 年移植了 jBCrypt
  2. 这已导入 Google 代码并在 2010 年 10 月进行了一些更新。
  3. Ryan D. Emerle 的 Codeplex 代码以更新版本的 jBCrypt 作为其源代码(2010 年末)。此导入日期*在* Google Code 版本的最后一次更改之后。这已于 2013 年 11 月更新为最新来源。
  4. CryptSharp 最初于 2010 年 11 月发布,现在定期发布(2014 年 12 月)。从头写的??

我目前正在使用该Codeplex版本,因为它似乎得到了维护,并且出现在谷歌搜索结果的早期。

关于 2011 年的crypt_blowfish错误:(j)BCrypt.net 是该算法的独立实现,不依赖于 unixcrypt_blowfish库。所以它根本不应该受到影响。不过,支持 $2y$ 格式的重写已经过期了。

于 2013-02-14T23:17:30.567 回答
2

不幸的是,截至 2012 年 10 月 4 日,我想说上面列出的算法都不够用。根据这篇文章 (http://en.wikipedia.org/wiki/Crypt_(Unix)),2011 年在算法中发现了一个缺陷。正确的 bcrypt 哈希现在应该以 $2y$ 而不是 $2a$ 开头。我自己还在寻找算法。

于 2012-10-04T19:02:03.290 回答
1

老实说,我使用了您列出的三个中的两个,除了方法名称外,我发现没有其他区别。似乎他们做同样的事情。

我更喜欢使用 NuGet 包,因为它更容易与现有项目集成。我什至写了一篇关于如何使用 NuGet 包管理器完成此任务的小文章。

http://sergiotapia.com/2011/03/using-bcrypt-in-a-net-application-why-its-better-than-sha-or-md5/

于 2011-04-11T18:58:46.677 回答