保护字节数据.net

时间:2012-02-12 16:18:10

标签: .net security data-protection

我正在尝试使用.net应用程序中的protectedmemory和protecteddata保护字节数据

构成此网站http://www.codedigest.com/Articles/Framework/69_Data_Encryption_and_Decryption_using_DPAPI_classes_in_NET.aspx  似乎我只能保护几个字节

而且,我无法获取此处提供的示例http://msdn.microsoft.com/en-us/library/ms229741(v=vs.85).aspx来运行

我收到以下错误:

  

名称'MemoryProtectionScope'未声明。 (BC30451)
     未声明名称“DataProtectionScope”。 (BC30451)
     名称'ProtectedMemory'未声明。 (BC30451)

任何人都可以帮助我解决其他方法。

1 个答案:

答案 0 :(得分:1)

是什么让你认为你只能保护那篇文章的几个字节? API很简单 - 请记住加密不会发生,带有加密内容的新数组会返回。

以下是使用ProtectedData.Protectback的完整示例:

void Main()
{
    string data  = new WebClient().DownloadString("http://www.stackoverflow.com");
    var buffer = Encoding.UTF8.GetBytes(data);
    buffer = System.Security.Cryptography.ProtectedData.Protect(buffer, null, System.Security.Cryptography.DataProtectionScope.CurrentUser);
    // Data is now protected.

    // Unprotect
    buffer = System.Security.Cryptography.ProtectedData.Unprotect(buffer, null, System.Security.Cryptography.DataProtectionScope.CurrentUser);  
    string decrypted = Encoding.UTF8.GetString(buffer);
    Debug.Assert(data == decrypted);
}

此外,您还需要添加对System.Security程序集的引用。