我为Nu Studio安装了适用于Visual Studio 2015的PBKDF2软件包。
我正在使用This resource来填充我的密码字段。
public static string CreateHash(string password)
{
// Generate a random salt
RNGCryptoServiceProvider csprng = new RNGCryptoServiceProvider();
byte[] salt = new byte[SALT_BYTE_SIZE];
csprng.GetBytes(salt);
// Hash the password and encode the parameters
byte[] hash = PBKDF2(password, salt, PBKDF2_ITERATIONS, HASH_BYTE_SIZE);
return PBKDF2_ITERATIONS + ":" +
Convert.ToBase64String(salt) + ":" +
Convert.ToBase64String(hash);
}
但我明白了:
编译器错误消息:CS0118:' System.Security.Cryptography.PBKDF2'是一种'类型'但用作变量'
这是针对行中的PBKDF2调用 - > byte [] hash = PBKDF2(密码,salt,PBKDF2_ITERATIONS,HASH_BYTE_SIZE);
那么我如何将其作为变量而不是方法应用并仍然传递这些参数?
另外,为什么我首先会得到这个错误? source看起来是一个非常好的源代码,在很多地方引用,包括有关stackoverflow的问题。
答案 0 :(得分:0)
确定。我经历了很多网站和示例,似乎这种方法可行
using (var pbkdf2 = new Rfc2898DeriveBytes(password, salt, PBKDF2_ITERATIONS))
{
hash = pbkdf2.GetBytes(24);
}