public static string GenerateHash(string password, string salt, int iterations)
{
var pbkdf2 = new Rfc2898DeriveBytes(password, Convert.FromBase64String(salt), iterations);
var keyBytes = pbkdf2.GetBytes(32);
return Convert.ToBase64String(keyBytes);
}
我正在获取一个用于zip存档的哈希密码,但我不知道我是否真的正确地检索了哈希。
答案 0 :(得分:1)
嗯,我认为这个问题的答案是:绝对是的。 为了全面评估您的方法,有一些缺少的部分会很有趣......特别是如何构建盐以及如何验证密码。
我就是这样做的:
public static String HashPassword(String password)
{
Byte[] salt = new Byte[24];
RNGCryptoServiceProvider cryptoProvider = new RNGCryptoServiceProvider();
cryptoProvider.GetBytes(salt);
Rfc2898DeriveBytes pbkdf2 = new Rfc2898DeriveBytes(password, salt, 1000);
return Convert.ToBase64String(pbkdf2.GetBytes(20)); // Size of PBKDF2-HMAC-SHA-1 Hash
}