问题标签 [bcrypt.net]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - BCrypt 是在 C# 中使用的一个很好的散列算法吗?我在哪里可以找到它?
我读过在散列密码时,许多程序员建议使用 BCrypt 算法。
我正在用 C# 编程,想知道是否有人知道 BCrypt 的良好实现?我找到了这个页面,但我真的不知道它是否是假的。
选择密码哈希方案时应该注意什么?BCrypt 是一个“好的”实现吗?
.net - bcrypt 的 .net 实现
有谁知道 bcrypt 的一个很好的实现,我知道这个问题之前已经被问过,但它得到的回应很少。我有点不确定是否只是选择在 google 中出现的实现,并且我认为在 System.Security.Cryptography 命名空间中使用 sha256 可能会更好,至少那时我知道它是受支持的!你有什么想法?
c# - 为什么 BCrypt.net GenerateSalt(31) 会立即返回?
在阅读了 Jeff Atwood 关于存储密码的帖子后,我偶然发现了 BCrypt.net,这让我想到了 Thomas Ptacek 建议使用 BCrypt来存储密码。这最终让我想到了 BCrypt 的这个 C# 实现
在上面最后一个链接的评论中,有人问“为什么 GenerateSalt(30) 永远需要,但 GenerateSalt(31) 似乎根本不需要时间?”
我运行了 BCrypt.HashPassword(password, BCrypt.GenerateSalt(31)) 并在 0 毫秒内得到了结果。
我已经运行 BCrypt.HashPassword("password", BCrypt.GenerateSalt(30)) 超过 5 分钟,但仍然没有结果。
我意识到多年来我们可能不需要随机生成的 30 个字符的盐来创建我们的密码哈希(或BCrypt 的不可逆加密)。编辑我应该稍微阅读一下代码,logRounds 与盐长度没有任何关系。谢谢阿罗诺特。
那么,为什么 GenerateSalt(31) 几乎会立即返回一个值(而它需要的时间大约是 GenerateSalt(30) 的两倍?
更新
这是修复:
c# - jBCrypt 0.3 C# 端口 (BCrypt.net)
在查看原始 jBCrypt v0.1 C# 端口中的错误后:BCrypt.net(相关问题)。我决定将新的 jBCrypt 代码与旧的 C# 端口进行比较,以查找差异和潜在问题,例如相关问题的错误。
这是我发现的:
如果先验不正确,下面会修复它吗?
c# - 在哪里可以找到有关 BCrypt for .NET 的文档?
我使用 NuGet 来获取 BCrypt 库并正确安装。现在我想了解它以及如何使用它,但我似乎找不到任何文档。
即使搜索库命名空间也没有结果:
关于在哪里可以找到一些示例,甚至是普通的旧文档的任何建议?我正在使用 C#。
c# - 有人可以解释 BCrypt 如何验证哈希吗?
我正在使用 C# 和 BCrypt.Net 来散列我的密码。
例如:
如果 BCrypt 没有在任何地方保存盐,它如何使用哈希验证密码。我唯一的想法是它以某种方式在哈希末尾添加了盐。
这是一个正确的假设吗?
.net - 首选 BCrypt.Net 实现
BCrypt.net 有几个不同的端口,很难说哪个是“最好的”。
有没有人花时间审查它们并就光顾哪个项目得出任何结论?我最感兴趣的是哪个拥有最活跃的开发者社区。当然,功能集、有效性、简单性和文档也很好:)
这是我能够追踪到的 BCrypt.Net 实现列表:
据我所知,这是第一个端口,并且有一段时间没有更新。0.1版
用户将 Derek Slager 的副本发布到 google 代码并进行了一些改进。0.3版
Visual Studio 唯一的 NuGet 版本,它是一个没有源代码的编译副本,所以我无法确定它的任何信息。它似乎支持仅在 0.3 版 Google 代码版本中可用的新功能。它没有列出任何支持站点,我不知道它是否是开源的并且没有任何类型的归属(有点粗略)。1.0 版,213 次下载。
这似乎是一个完全独立的端口,与 Derek Slager 的端口无关。它似乎有一些半定期更新。版本 R5,140 次下载。
这份清单是否完整?有什么理由选择一个而不是另一个吗?
.net - bcrypt的.Net实现,它实现了HashAlgorithm?
我希望在我的身份验证库中允许 bcrypt 支持。现在的问题之一是我假设 hasher 将是 type HashAlgorithm
。Bcrypt.net 没有实现这个类。此外,它是密封的,所以我必须自己制作分支并自己修改它。有没有更好的替代方案已经实现了 HashAlgorithm?
c# - 在 C# ASP.NET 中添加自定义 hashAlgorithmType
我有一个页面需要加强安全性。我正在使用内置的 MembershipProvider 功能,目前已hashAlgorithmType
设置为 SHA512。我有 BCrypt.NET 库(http://bcrypt.codeplex.com/),当我从代码中调用它的函数时,它似乎工作得很好,但我在弄清楚如何创建适当的<cryptographySettings>
Web.config 中的部分让我创建一个hashAlgorithmType
.
我在网上找到了以下代码片段:
如果你愿意,可以称我为菜鸟,但我显然没有必要的知识来做出正面或反面。我所需要的只是一种方法来告诉会员提供者类似的东西<hashAlgorithmType="bcrypt">
对应于类似string hashed = BCrypt.HashPassword(password, BCrypt.GenerateSalt(12));
加密和bool matches = BCrypt.CheckPassword(candidate, hashed);
解密的东西。请告诉我有一个简单的答案。如果必须,我可以从头开始重写登录系统,但我已经有了一个工作实现,我真的很想改变它的哈希算法。
asp.net - BCrypt 哈希密码在数据库中被截断
我正在使用 BCrypt 的 .Net 实现将密码存储在数据库中。密码列是 VARCHAR(MAX)
这是通过存储过程更新密码的代码:
对于某些用户,密码会被截断。截断后的一个例子是:$2a$12$XM2
情况并非总是如此。
请帮助我了解可能导致截断的原因?
更新:
下面是调用 SP 更新密码的 C# 代码: