ProtectedMemory.Protect(Byte[], MemoryProtectionScope) Метод

Определение

Защищает заданные данные.Protects the specified data.

public:
 static void Protect(cli::array <System::Byte> ^ userData, System::Security::Cryptography::MemoryProtectionScope scope);
public static void Protect (byte[] userData, System.Security.Cryptography.MemoryProtectionScope scope);
static member Protect : byte[] * System.Security.Cryptography.MemoryProtectionScope -> unit
Public Shared Sub Protect (userData As Byte(), scope As MemoryProtectionScope)

Параметры

userData
Byte[]

Массив байтов, в котором содержатся данные, хранящиеся в оперативной памяти и подлежащие защите.The byte array containing data in memory to protect. Размер массива должен быть кратен 16 байтам.The array must be a multiple of 16 bytes.

scope
MemoryProtectionScope

Одно из значений перечисления, определяющее область действия защиты памяти.One of the enumeration values that specifies the scope of memory protection.

Исключения

Длина значения параметра userData должна быть равна или кратна 16 байтам.userData must be 16 bytes in length or in multiples of 16 bytes.

Этот метод не поддерживается операционной системой.The operating system does not support this method. Этот метод может использоваться только в Windows 2000 или более поздних операционных системах Microsoft Windows.This method can be used only with the Windows 2000 or later operating systems.

userData имеет значение null.userData is null.

Примеры

В следующем примере кода показано, как использовать защиту данных.The following code 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

Комментарии

Этот метод можно использовать для защиты данных в памяти.This method can be used to protect data in memory. Обратите внимание, что метод не копирует данные, а массив байтов шифруется на месте.Note that the method does not make a copy of the data, but encrypts the byte array in place. userDataДлина параметра должна быть 16 байт или кратная 16 байт.The userData parameter must be 16 bytes in length or a multiple of 16 bytes.

Поддержка этого метода доступна в операционных системах Windows XP и более поздних версий.Support for this method is available in the Windows XP and later operating systems.

Применяется к