问题
am trying to protect bytes data using the protectedmemory and protecteddata in .net application
form this site, http://www.codedigest.com/Articles/Framework/69_Data_Encryption_and_Decryption_using_DPAPI_classes_in_NET.aspx is seems i can only protect a few bytes
and also, i cannot get the sample provided here http://msdn.microsoft.com/en-us/library/ms229741(v=vs.85).aspx to run
I get the following errors:
Name 'MemoryProtectionScope' is not declared. (BC30451)
Name 'DataProtectionScope' is not declared. (BC30451)
Name 'ProtectedMemory' is not declared. (BC30451)
can anyone help me with other methods of doing this.
回答1:
What makes you think that you can only protect a few bytes from that article ? The API is quite simple - remember that the encryption doesn't happen in place, a new array is returned with the encrypted content.
Here is a full example of using ProtectedData.Protect and back:
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);
}
Also, you will need to add a reference to the System.Security assembly.
来源:https://stackoverflow.com/questions/9250360/protect-bytes-data-net