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 завершится ошибкой.