ProtectedMemory.Unprotect(Byte[], MemoryProtectionScope) 方法

定义

取消对使用 Protect(Byte[], MemoryProtectionScope) 方法保护的内存中的数据的保护。

C#
public static void Unprotect(byte[] encryptedData, System.Security.Cryptography.MemoryProtectionScope scope);

参数

encryptedData
Byte[]

要解密的内存中的字节数组。

scope
MemoryProtectionScope

指定内存保护范围的枚举值之一。

例外

该操作系统不支持此方法。 此方法仅可用于 Windows 2000 或更高版本的操作系统。

encryptedDatanull

encryptedData 为空。

- 或 -

未实现此调用。

- 或 -

NTSTATUS 包含错误。

示例

以下示例演示如何使用数据保护。

C#
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 );
    }
}

注解

此方法可用于取消加密使用 Protect 方法加密的内存中的数据。

Windows XP 和更高版本的操作系统中提供了对此方法的支持。

适用于

产品 版本
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1