这是在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

回到顶部