Frage

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.

War es hilfreich?

Lösung

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top