作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
IterationCount
的目的是什么? Rfc2898DeriveBytes
的属性(property)类(class)。 MSDN没有过多说明它,但它确实说 1,000 是推荐的最小值。
如果我要将其设置为 1,000,为什么不设置为 1,000,000 或 1,000,000,000?建议 1,000 背后是否有原因,是否有最佳实践来确定每个用例的正确值?
最佳答案
Rfc2898DeriveBytes
实现 PBKDF2。该算法使用盐和 key 扩展从密码创建相对安全的 key (正常长度的密码不是那么安全)。为了更难破解密码,它使用迭代计数(这是添加到创建 key 的线性成本)。合法用户和攻击者的成本相同,但攻击者必须遍历所有可能的密码。
没有标准数量;基本上,您将其设置为这样一个值,该值对于您的 CPU 性能来说是可以接受的。 1000 是标准中的推荐值,但该标准已经存在多年。现在你应该从最少 10K 开始 + ,以上任何内容都会使攻击者更难找到生成相同“ key ”的密码。
+ [编辑] 请查找当前推荐的迭代次数。请注意摩尔定律仍然有效并且 PBKDF2 本身确实有效 不是 对迭代计数使用指数尺度。确保其他密码处理例程也是安全的(密码强度反馈、最大重试次数等)。
显然,更重要的 key 应该得到更好的保护。请注意,生成一个真正安全的密码比添加迭代具有更大的影响 - 使用好的密码和高迭代次数当然是最好的。
关于.net - Rfc2898DeriveBytes IterationCount 目的和最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21145982/
我是一名优秀的程序员,十分优秀!