gpt4 book ai didi

c# - System.Web.Helpers HashPassword 盐和迭代?

转载 作者:太空宇宙 更新时间:2023-11-03 19:09:59 24 4
gpt4 key购买 nike

ASP.net 有一个 System.Web.Helpers.Crypto用于散列和验证密码的类。它似乎可以动态生成盐并将其存储为密码哈希的一部分。

我的问题是,随着计算机变得越来越强大并且需要增加迭代次数以帮助防止暴力攻击,您如何增加现有密码的迭代次数?

迭代次数被硬编码到帮助程序中。将其更改为更大的数字会增加新密码的迭代次数,但也会在验证密码时单方面增加所有密码。这不会破坏旧密码的密码验证吗?

为了规划 future ,您不想存储盐分和迭代次数吗?

此外,是否可以通过执行额外的迭代来“加强”现有的密码哈希值,或者所有迭代都必须作为一个操作发生?

最佳答案

该帮助程序实际上确实存储了一个前缀,指示所使用的算法和迭代次数,因此如果算法在未来发生变化,旧密码仍然可以得到验证。

我们考虑将默认值从 1,000 提高到更高的值。然而,当我们这样做时,新的 CPU 命中是 Not Acceptable 。消费者设备需要 1,000,000 次迭代是可以的,因为您不会真正关心您的平板电脑或手机是否需要 0.5 秒才能登录。但是当网页需要可测量的时间来处理登录请求时......好吧......您不希望用户仅通过登录就对服务器进行 DoS 攻击。:)

不幸的是,1,000 次迭代仍然是提供更高安全性(通过直接加盐和哈希)和保持 Web 服务器响应的最佳权衡。

关于c# - System.Web.Helpers HashPassword 盐和迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21532431/

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