ProtectedMemory クラス

定義

メモリの保護と保護解除のためのメソッドを提供します。Provides methods for protecting and unprotecting memory. このクラスは継承できません。This class cannot be inherited.

public ref class ProtectedMemory sealed
public sealed class ProtectedMemory
type ProtectedMemory = class
Public NotInheritable Class ProtectedMemory
継承
ProtectedMemory

次の例は、データ保護の使用方法を示しています。The following example shows how to use data protection.

#using <System.Security.dll>

using namespace System;
using namespace System::Security::Cryptography;

int main()
{
   
   // Create the original data to be encrypted (The data length should be a multiple of 16).
   array<Byte>^secret = {1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4};
   
   // Encrypt the data in memory. The result is stored in the same array as the original data.
   ProtectedMemory::Protect( secret, MemoryProtectionScope::SameLogon );
   
   // Decrypt the data in memory and store in the original array.
   ProtectedMemory::Unprotect( secret, MemoryProtectionScope::SameLogon );
}
using System;
using System.Security.Cryptography;

public class MemoryProtectionSample
{

    public static void Main()
    {
        // Create the original data to be encrypted (The data length should be a multiple of 16).
        byte [] secret = { 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4 };

        // Encrypt the data in memory. The result is stored in the same array as the original data.
        ProtectedMemory.Protect( secret, MemoryProtectionScope.SameLogon );

        // Decrypt the data in memory and store in the original array.
        ProtectedMemory.Unprotect( secret, MemoryProtectionScope.SameLogon );
    }
}
Imports System.Security.Cryptography

Public Class MemoryProtectionSample

    Public Shared Sub Main()
        ' Create the original data to be encrypted (The data length should be a multiple of 16).
        Dim secret As Byte() = {1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4}

        ' Encrypt the data in memory. The result is stored in the same array as the original data.
        ProtectedMemory.Protect(secret, MemoryProtectionScope.SameLogon)

        ' Decrypt the data in memory and store in the original array.
        ProtectedMemory.Unprotect(secret, MemoryProtectionScope.SameLogon)

    End Sub
End Class

注釈

このクラスは、Windows XP 以降のオペレーティングシステムで使用可能なデータ保護 API (DPAPI) へのアクセスを提供します。This class provides access to the Data Protection API (DPAPI) available in the Windows XP and later operating systems. これはオペレーティングシステムによって提供されるサービスであり、追加のライブラリは必要ありません。This is a service that is provided by the operating system and does not require additional libraries. メモリ内の機微なデータの暗号化を提供します。It provides encryption for sensitive data in memory.

クラスは、アンマネージ DPAPI ProtectUnprotectの2つのラッパーで構成されます。The class consists of two wrappers for the unmanaged DPAPI, Protect and Unprotect. これらの2つのメソッドを使用して、メモリ内のデータの暗号化と復号化を行うことができます。These two methods can be used to encrypt and decrypt data in memory.

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判定します。Determines whether the specified object is equal to the current object.

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
Protect(Byte[], MemoryProtectionScope)

指定されたデータを保護します。Protects the specified data.

ToString()

現在のオブジェクトを表す string を返します。Returns a string that represents the current object.

(継承元 Object)
Unprotect(Byte[], MemoryProtectionScope)

Protect(Byte[], MemoryProtectionScope) メソッドを使用して保護されたメモリ内データの保護を解除します。Unprotects data in memory that was protected using the Protect(Byte[], MemoryProtectionScope) method.

適用対象