我有一个基于Rfc2898DeriveBytes的密码散列机制(基于此处详细说明的代码: http ://crackstation.net/hashing-security.htm)。 在内部,这个类使用SHA1,其中CrackStation链接确实指示SHA1是“旧”,但也指出,尽管Rfc2898DeriveBytes在内部使用它,但Rfc2898DeriveBytes仍然是一个很好的机制。

我的一个客户的安全部门听说“SHA1已被泄露”(具体而言,为了签署文件以便在互联网上传输,SHA1在某些情况下已被击败 - 事实上这个“漏洞” “不适用于密码哈希对安全部门来说无关紧要”。 因此,他们要求我们改变我们的密码散列机制以使用SHA2。

目前,.Net框架没有内部使用SHA2(或SHA256等)的Rfc2898DeriveBytes。 我知道我可以使用反射来获取此类的源代码并进行更改,但我始终被告知加密的第一条规则是“不要自己增长”。

这主要是我的客户的政治要求,而不是技术要求,通过在通过Rfc2898DeriveBytes运行密码之前通过SHA2哈希运行密码可以轻松满足。 但是,我对密码学知之甚少,不知道这可能是坏事 - 实际上可能导致客观上不太安全的密码哈希。

有没有人知道使用SHA2的Rfc2898DeriveBytes等效类? 或者,是否有人知道在Rfc2898DeriveBytes之前通过SHA2哈希运行密码是否完全安全?

===============>>#1 票数:0

从“ SecurityDriven.NET ”一书下载免费代码示例。 找到需要HMAC工厂的PBKDF2类。 可用的工厂包括SHA2(256,384,512)。

Rfc2898DeriveBytes之前通过SHA2哈希运行密码不是正确的做法,即使这不太可能是你正在做的任何事情中最薄弱的部分(你将失去密码熵)。

  ask by David Mullin translate from so

未解决问题?本站智能推荐:

关注微信公众号