ProtectedMemory.Protect(Byte[], MemoryProtectionScope) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Belirtilen verileri korur.
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)
Parametreler
- userData
- Byte[]
Korunacak bellekte veri içeren bayt dizisi. Dizi 16 baytlık bir kat olmalıdır.
- scope
- MemoryProtectionScope
Bellek korumasının kapsamını belirten numaralandırma değerlerinden biri.
Özel durumlar
userData
uzunluğu 16 bayt veya 16 bayt katları olmalıdır.
İşletim sistemi bu yöntemi desteklemiyor. Bu yöntem yalnızca Windows 2000 veya sonraki işletim sistemleriyle kullanılabilir.
userData
, null
değeridir.
Örnekler
Aşağıdaki kod örneği, veri korumanın nasıl kullanılacağını gösterir.
#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
Açıklamalar
Bu yöntem bellekteki verileri korumak için kullanılabilir. yönteminin verilerin bir kopyasını oluşturmadığını, ancak bayt dizisini yerinde şifrelediğini unutmayın. Parametrenin userData
uzunluğu 16 bayt veya 16 bayt katı olmalıdır.
Bu yöntem için destek Windows XP ve sonraki işletim sistemlerinde kullanılabilir.