CryptographicEngine.Decrypt(CryptographicKey, IBuffer, IBuffer) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Descriptografa o conteúdo que foi criptografado anteriormente usando um algoritmo simétrico ou assimétrico.
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
Parâmetros
- key
- CryptographicKey
Chave criptográfica a ser usada para descriptografia. Isso pode ser uma chave assimétrica ou simétrica. Para obter mais informações, consulte AsymmetricKeyAlgorithmProvider e SymmetricKeyAlgorithmProvider.
- data
- IBuffer
Buffer que contém os dados criptografados.
- iv
- IBuffer
Buffer que contém o vetor de inicialização. Se um iv (vetor de inicialização) foi usado para criptografar os dados, você deve usar o mesmo IV para descriptografar os dados. Para obter mais informações, consulte Criptografar.
Retornos
Dados descriptografados.
Exemplos
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);
}
Comentários
O parâmetro de chave pode ser uma chave persistente obtida de um certificado usando a classe PersistedKeyProvider .
Se a chave for uma chave persistente e a operação de descriptografar exigir interface do usuário ou demorar muito, use o método DecryptAsync . Por exemplo, a interface do usuário é necessária ao descriptografar usando uma chave fortemente protegida. No caso em que uma chave persistente é usada e a interface do usuário é esperada, use o método DecryptAsync , pois o método Decrypt falhará.