BCrypt.net有几种不同的端口,很难说哪一个是“最好的”。
有没有人花时间审阅它们,并得出任何关于资助哪个项目的结论?我最感兴趣的是哪个社区拥有最活跃的开发人员。当然,特性集、有效性、简单性和文档化也很好:)
以下是我能够追踪到的BCrypt.Net实现的列表:
Derek Slager
据我所知,这是第一个端口,已经有一段时间没有更新了。版本0.1
Google Code
该用户将Derek Slager的副本发布到google code,并做了一些改进。版本0.3
NuGet
Visual studio唯一的NuGet版本,它是一个没有源代码的编译副本,所以我不能确定任何关于它的信息。它似乎确实支持一个仅在0.3版Google Code版本中可用的新功能。它没有列出支持站点,我不知道它是否是开源的,也没有任何类型的属性(有点粗略)。版本1.0,213下载。
Code Plex
这似乎是一个完全独立的港口,与Derek Slager的港口无关。它似乎有一些半定期的更新。版本R5,140次下载。
这个列表完整吗?有任何理由选择一个而不是另一个吗?
发布于 2013-02-15 07:17:31
最近的这些似乎是安全的,或者至少是“没有已知的bug”。( bcrypt中还有其他弱点,但它们是算法方面的,而不是与代码相关的。我假设如果您使用的是bcrypt,那么您应该已经知道这些。)
(http://www.mindrot.org/files/jBCrypt/internat.adv)
细目:
jBCrypt错误修复。但这已经过时了。粗略的时间表,基于修订控制更改日志:
关于2011年的unix错误:(j)BCrypt.net是算法的独立实现,不依赖于crypt_blowfish crypt_blowfish库。所以它应该不会受到任何影响。不过,早该重写以支持$2y$格式了。
发布于 2012-10-05 03:02:03
不幸的是,截至2012年10月4日,上面列出的算法没有一个是足够的。根据本文(http://en.wikipedia.org/wiki/Crypt_(Unix)),2011年在算法中发现了一个缺陷。正确的bcrypt哈希现在应该以$2y$开头,而不是$2a$。我自己还在寻找一个算法。
发布于 2011-04-12 02:58:47
老实说,我已经使用了您列出的三个方法中的两个,除了方法名之外,我没有发现其他任何区别。看起来他们做了同样的事情。
我更喜欢使用NuGet包,因为它更容易与现有项目集成。我甚至写了一篇关于如何使用NuGet包管理器来实现这一点的小文章。
http://sergiotapia.com/2011/03/using-bcrypt-in-a-net-application-why-its-better-than-sha-or-md5/
https://stackoverflow.com/questions/5600541
复制相似问题