如何在C#中检索哈希密码?

时间:2013-01-28 19:00:34

标签: c#-4.0 asp.net-mvc-4 encryption pbkdf2 password-hash

检索/重置密码/忘记密码的正确方法是什么?

我在Rfc2898DeriveBytes类中使用了基于密码的密钥派生函数2(PBKDF2)。

   public static string HashPassword(string password)
        {
            if (password == null)
            {
                throw new ArgumentNullException("password");
            }

            byte[] salt;
            byte[] subkey;
            using (var deriveBytes = new Rfc2898DeriveBytes(password, SaltSize, Pbkdf2Count))
            {
                salt = deriveBytes.Salt;
                subkey = deriveBytes.GetBytes(Pbkdf2SubkeyLength);
            }

            byte[] outputBytes = new byte[1 + SaltSize + Pbkdf2SubkeyLength];
            Buffer.BlockCopy(salt, 0, outputBytes, 1, SaltSize);
            Buffer.BlockCopy(subkey, 0, outputBytes, 1 + SaltSize, Pbkdf2SubkeyLength);
            return Convert.ToBase64String(outputBytes);
        }

那么重置哈希密码的方法是什么?

0 个答案:

没有答案