1

.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)

誰かがこれを行う他の方法で私を助けることができますか?

4

1 に答える 1

1

その記事から数バイトしか保護できないと思う理由は何ですか? API は非常に単純です。暗号化はその場で行われないことに注意してください。暗号化されたコンテンツとともに新しい配列が返されます。

ProtectedData.Protectand 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);
}

また、System.Security アセンブリへの参照を追加する必要があります。

于 2012-02-12T16:29:57.960 に答える