Bah*_*mut 3 .net security passwords
我最近知道使用 SHA256 为加盐密码生成密码哈希。阅读一些关于盐渍密码和安全性,我看到后rfc2898derivebytes,并passwordderivebytes在.NET类。使用rfc2898derivebytes类比通常的散列方法有什么优势(生成盐,生成盐密码,将两者都存储在数据库中)?
可以在现代硬件上极快地生成标准哈希,例如 SHA256。
这通常被认为是一件好事,但也有一个缺点:试图破解您密码的坏人也可以极快地生成这些哈希值,这意味着他们可以使用蛮力相对轻松地发现您的密码。
密钥派生算法如bcrypt和PBKDF2(又名Rfc2898DeriveBytes)比标准哈希算法慢得多。他们在内部使用标准的散列算法——在这种情况下是 SHA1——Rfc2898DeriveBytes但他们迭代数千次以生成派生密钥。
因此,虽然您的机器需要做更多的工作来使用迭代密钥派生算法生成“哈希”,但试图破解您密码的坏人也必须做更多的工作。这是一件好事。
本Rfc2898DeriveBytes类允许您指定的迭代次数使用(我觉得默认为1000)。您使用的迭代次数越多,攻击者就越难使用蛮力破解您的密码。