4

尝试使用 System.Security 的加密代码时出现运行时错误。我添加了对 System.Security 的引用,一切看起来都不错,但出现此错误:“编译器错误消息:CS0103:当前上下文中不存在名称‘ProtectedData’”

这是引发错误的代码。

public static string EncryptString(SecureString input, string entropy)
    {
        byte[] salt = Encoding.Unicode.GetBytes(entropy);
        byte[] encryptedData = ProtectedData.Protect(
            Encoding.Unicode.GetBytes(ToInsecureString(input)),
            salt,
            DataProtectionScope.CurrentUser);
        return Convert.ToBase64String(encryptedData);
    }

谢谢,山姆

4

1 回答 1

12

您需要添加 using 语句,System.Security.Cryptography并且需要引用System.Security.dll. 从您的问题看来,您只是添加了引用而不是 using 语句。

除了 using 语句,您还可以完全限定引用,如下所示:

byte[] encryptedData = System.Security.Cryptography.ProtectedData.Protect(
            Encoding.Unicode.GetBytes(ToInsecureString(input)), salt,
            System.Security.Cryptography.DataProtectionScope.CurrentUser);
于 2013-08-27T01:21:51.463 回答