Поделиться через


CryptographicBuffer Класс

Определение

Содержит статические методы, реализующие функции управления данными, общие для криптографических операций.

public ref class CryptographicBuffer abstract sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class CryptographicBuffer final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public static class CryptographicBuffer
Public Class CryptographicBuffer
Наследование
Object Platform::Object IInspectable CryptographicBuffer
Атрибуты

Требования к Windows

Семейство устройств
Windows 10 (появилось в 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v1.0)

Примеры

public void CryptographicBufferOverview()
{
    // 1. Generate random data.
    UInt32 buffLength = 32;
    IBuffer buffRnd = CryptographicBuffer.GenerateRandom(buffLength);
    String strRndData = CryptographicBuffer.EncodeToHexString(buffRnd);

    // 2. Generate a random number.
    UInt32 Rnd = CryptographicBuffer.GenerateRandomNumber();

    // 3. Decode a Base 64 string to a buffer and encode the buffer to a Base64 string.
    String strBase64v1 = "uiwyeroiugfyqcajkds897945234==";
    IBuffer buffFromBase64 = CryptographicBuffer.DecodeFromBase64String(strBase64v1);
    String strBase64v2 = CryptographicBuffer.EncodeToBase64String(buffFromBase64);

    // 4. Decode a hexadecimal string to a buffer and encode the buffer to a hexadecimal string.
    String strHexv1 = "30310AFF";
    IBuffer buffFromHex = CryptographicBuffer.DecodeFromHexString(strHexv1);
    String strHexv2 = CryptographicBuffer.EncodeToHexString(buffFromHex);

    // 5. Convert a strings to binary data and convert binary data to strings.
    String strIn = "Input String";
    IBuffer buffUTF16BE = CryptographicBuffer.ConvertStringToBinary(strIn, BinaryStringEncoding.Utf16BE);
    String  strUTF16BE  = CryptographicBuffer.ConvertBinaryToString(BinaryStringEncoding.Utf16BE, buffUTF16BE);
    IBuffer buffUTF16LE = CryptographicBuffer.ConvertStringToBinary(strIn, BinaryStringEncoding.Utf16LE);
    String  strUTF16LE  = CryptographicBuffer.ConvertBinaryToString(BinaryStringEncoding.Utf16LE, buffUTF16LE);
    IBuffer buffUTF8 = CryptographicBuffer.ConvertStringToBinary(strIn, BinaryStringEncoding.Utf8);
    String  strUTF8  = CryptographicBuffer.ConvertBinaryToString(BinaryStringEncoding.Utf8, buffUTF8);

    // 6. Create a buffer from a byte array and create a byte array from a buffer,
    byte[] arrByte = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    IBuffer buffFromByteArr = CryptographicBuffer.CreateFromByteArray(arrByte);
    byte[] arrByteNew;
    CryptographicBuffer.CopyToByteArray(buffFromByteArr, out arrByteNew);

    // 7. Compare two buffers. The following Boolean value is true because the code points are equal.
    String strHex = "30310aff";
    String strBase64 = "MDEK/w==";
    IBuffer buff1 = CryptographicBuffer.DecodeFromHexString(strHex);
    IBuffer buff2 = CryptographicBuffer.DecodeFromBase64String(strBase64);
    Boolean bVal = CryptographicBuffer.Compare(buff1, buff2);

}

Методы

Compare(IBuffer, IBuffer)

Сравнивает два объекта IBuffer .

ConvertBinaryToString(BinaryStringEncoding, IBuffer)

Преобразует буфер в закодированную строку.

ConvertStringToBinary(String, BinaryStringEncoding)

Преобразует строку в закодированный буфер.

CopyToByteArray(IBuffer, Byte[])

Копирует буфер в массив байтов.

CreateFromByteArray(Byte[])

Создает буфер из входного массива байтов.

DecodeFromBase64String(String)

Декодирует строку в кодировке base64.

DecodeFromHexString(String)

Декодирует строку, которая была закодирована в шестнадцатеричном формате.

EncodeToBase64String(IBuffer)

Кодирует буфер в строку base64.

EncodeToHexString(IBuffer)

Кодирует буфер в шестнадцатеричную строку.

GenerateRandom(UInt32)

Создает буфер, содержащий случайные данные.

GenerateRandomNumber()

Создает случайное число.

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