gpt4 book ai didi

asp.net - bcrypt/Bcrypt.net 的优势和替代方案

转载 作者:行者123 更新时间:2023-12-02 14:27:21 28 4
gpt4 key购买 nike

好吧,经过大量研究,我决定使用 bcrypt(请随意评论)在我的 PhoneGap 应用程序中散列和存储密码。

几天前,我偶然发现了 Bcrypt.net,它对我来说似乎“足够好”(再次,请随意发表评论)。所以,我的问题是 C# 中还有哪些其他可用的 bcrypt 实现? Bcrypt.net 的实现中是否存在严重缺陷?

我的安全模型基本上如下所示:

  1. 用户在客户端输入个人识别码/密码/密码
  2. 这是通过安全 SSL 发送到我的 .net 应用程序(因此基本上从客户端以明文形式发送)
  3. 使用 bcrypt.net 等库对密码进行哈希处理并进行存储/比较

这里还有什么我真正需要考虑的吗?

任何帮助将不胜感激。

最佳答案

很高兴在这里看到有人做了一些研究。

我还没有看到任何不应该使用 bcrypt 的充分理由。一般来说,在服务器上使用 bcrypt、PBKDF2 或 scrypt 可以提供良好的安全层。

一如既往,细节决定成败。您当然需要 SSL,如果可能的话还需要使用 AES 加密的 TLS 1.2。如果您无法执行此操作,请确保您的连接中除了用户名/密码 + 必要的 HTML 之外不允许其他任何内容。

您应该决定密码的字符编码。我建议使用 UTF-8,可能会缩小到可打印的 ASCII 字符。记录所使用的字符编码或将其存储在配置中的某个位置。

尝试将所有输入参数与“哈希”密码一起存储到 bcrypt。当然不要忘记迭代次数。这使得当用户稍后输入他/她的密码时更容易升级到更高的迭代计数。您需要生成一个 8-16 字节的安全随机盐来与密码一起存储。

此外,您可能希望将额外的 KBKDF(基于 key 的 key 派生方案)应用于上述任何 PBKDF 的输出。这使得可以将 bcyrpt 的输出用于附加 key 等。KBKDF 对具有足够熵的数据进行处理,因此通常只需要很少的时间(例如,使用 NIST SP 800-108 兼容计数器模式 KDF) 。我想这应该被视为“专家模式”。

关于asp.net - bcrypt/Bcrypt.net 的优势和替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17889774/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com