这是在c#中的PBKDF2的正确实现
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档案,但我不知道我是否实际上正确检索哈希。这是在c#中的PBKDF2的正确实现
回答:
嗯,我认为这个问题的答案是:绝对是的。 为了充分评估您的方法,有几个缺失的部分会很有趣,特别是您如何构建盐以及如何验证密码。
这是我会怎么做:
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
}
以上是 这是在c#中的PBKDF2的正确实现 的全部内容, 来源链接: utcz.com/qa/257147.html