Asp.net身份哈希安全吗?

时间:2016-10-13 05:19:02

标签: c# asp.net encryption hash rijndael

我在以下网址中为Rijndael和Asp.net哈希实现引用了以下网站。

  1. Rijndael - How to generate Rijndael KEY and IV using a passphrase?
  2. Asp.net哈希 - ASP.NET Identity default Password Hasher, how does it work and is it secure?
  3. 在两个实施中, 以下内容用于获取密码的随机字节。 的 Rijndael算法

    Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(password, SALT);
    

    Asp.net标识哈希

    Rfc2898DeriveBytes bytes = new Rfc2898DeriveBytes(providedPassword, salt, HasingIterationsCount)
    

    在上面的代码之后,RijnDael对返回的字节应用加密。 但是asp.net标识将结果复制到salt字节数组并返回散列键。

    我在这里感到很困惑。 RijnDael和Asp.net身份哈希使用相同的 Rfc2898DeriveBytes

    当RijnDael可以解密加密密钥时(在Rfc2898DeriveBytes的帮助下完成),我们为什么要解密Asp.net Identity哈希密钥呢?

    有可能这样做吗? Asp.net身份是否安全?

1 个答案:

答案 0 :(得分:1)

是的,ASP.NET的密码哈希方法是安全的。

在您提供的示例中,用户使用的是加密技术,称为高级加密标准(AES,也称为Rijndael)。这就是秘密可以被解密的原因。

用户仅使用Rfc2898DeriveBytes课程才能获得keyinitialisation vector

该类不用于散列秘密消息。加密是隐藏信息的。

ASP.NET使用Rfc2898DeriveBytes类来哈希密码。这个程序是不可逆转的。