защитить байты данных .net - PullRequest
       21

защитить байты данных .net

1 голос
/ 12 февраля 2012

я пытаюсь защитить байтовые данные, используя защищенную память и защищенные данные в приложении .net

с этого сайта, 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 Ответ

1 голос
/ 12 февраля 2012

Что заставляет вас думать, что вы можете защитить только несколько байтов от этой статьи?API довольно прост - помните, что шифрование не происходит на месте, возвращается новый массив с зашифрованным содержимым.

Вот полный пример использования ProtectedData.Protect и назад :

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.

...