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


CryptographicEngine.Decrypt(CryptographicKey, IBuffer, IBuffer) Метод

Определение

Расшифровывает содержимое, которое ранее было зашифровано с помощью симметричного или асимметричного алгоритма.

public:
 static IBuffer ^ Decrypt(CryptographicKey ^ key, IBuffer ^ data, IBuffer ^ iv);
 static IBuffer Decrypt(CryptographicKey const& key, IBuffer const& data, IBuffer const& iv);
public static IBuffer Decrypt(CryptographicKey key, IBuffer data, IBuffer iv);
function decrypt(key, data, iv)
Public Shared Function Decrypt (key As CryptographicKey, data As IBuffer, iv As IBuffer) As IBuffer

Параметры

key
CryptographicKey

Криптографический ключ, используемый для расшифровки. Это может быть асимметричный или симметричный ключ. Дополнительные сведения см. в разделах AsymmetricKeyAlgorithmProvider и SymmetricKeyAlgorithmProvider.

data
IBuffer

Буфер, содержащий зашифрованные данные.

iv
IBuffer

Буфер, содержащий вектор инициализации. Если для шифрования данных использовался вектор инициализации (IV), для расшифровки данных необходимо использовать тот же вектор инициализации. Дополнительные сведения см. в разделе Шифрование.

Возвращаемое значение

Расшифрованные данные.

Примеры

public void SampleCipherDecryption(
    String strAlgName,
    IBuffer buffEncrypt,
    IBuffer iv,
    BinaryStringEncoding encoding,
    CryptographicKey key)
{
    // Declare a buffer to contain the decrypted data.
    IBuffer buffDecrypted;

    // Open an symmetric algorithm provider for the specified algorithm. 
    SymmetricKeyAlgorithmProvider objAlg = SymmetricKeyAlgorithmProvider.OpenAlgorithm(strAlgName);

    // The input key must be securely shared between the sender of the encrypted message
    // and the recipient. The initialization vector must also be shared but does not
    // need to be shared in a secure manner. If the sender encodes a message string 
    // to a buffer, the binary encoding method must also be shared with the recipient.
    buffDecrypted = CryptographicEngine.Decrypt(key, buffEncrypt, iv);

    // Convert the decrypted buffer to a string (for display). If the sender created the
    // original message buffer from a string, the sender must tell the recipient what 
    // BinaryStringEncoding value was used. Here, BinaryStringEncoding.Utf8 is used to
    // convert the message to a buffer before encryption and to convert the decrypted
    // buffer back to the original plaintext.
    String strDecrypted = CryptographicBuffer.ConvertBinaryToString(encoding, buffDecrypted);
}

Комментарии

Параметр key может быть сохраненным ключом, полученным из сертификата с помощью класса PersistedKeyProvider .

Если ключ является сохраненным и операция расшифровки требует пользовательского интерфейса или занимает много времени, используйте метод DecryptAsync . Например, при расшифровке с помощью ключа, который является строго защищенным, требуется пользовательский интерфейс. В случае, когда используется сохраненный ключ и ожидается пользовательский интерфейс, используйте метод DecryptAsync , так как метод Decrypt завершится ошибкой.

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

См. также раздел