CS0118:' System.Security.Cryptography.PBKDF2'是一种'类型'但用作变量'

时间:2015-11-19 14:09:52

标签: visual-studio hash cryptography visual-studio-2015 pbkdf2

我为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的问题。

1 个答案:

答案 0 :(得分:0)

确定。我经历了很多网站和示例,似乎这种方法可行

        using (var pbkdf2 = new Rfc2898DeriveBytes(password, salt, PBKDF2_ITERATIONS))
    {
        hash = pbkdf2.GetBytes(24);
    }