CryptographicEngine.Decrypt(CryptographicKey, IBuffer, IBuffer) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Entschlüsselt Inhalte, die zuvor mit einem symmetrischen oder asymmetrischen Algorithmus verschlüsselt wurden.
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
Parameter
- key
- CryptographicKey
Kryptografischer Schlüssel, der für die Entschlüsselung verwendet werden soll. Dies kann ein asymmetrischer oder ein symmetrischer Schlüssel sein. Weitere Informationen finden Sie unter AsymmetricKeyAlgorithmProvider und SymmetricKeyAlgorithmProvider.
- data
- IBuffer
Puffer, der die verschlüsselten Daten enthält.
- iv
- IBuffer
Puffer, der den Initialisierungsvektor enthält. Wenn zum Verschlüsseln der Daten ein Initialisierungsvektor (IV) verwendet wurde, müssen Sie denselben IV verwenden, um die Daten zu entschlüsseln. Weitere Informationen finden Sie unter Verschlüsseln.
Gibt zurück
Die entschlüsselten Daten.
Beispiele
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);
}
Hinweise
Der Schlüsselparameter kann ein dauerhafter Schlüssel sein, der von einem Zertifikat mithilfe der PersistedKeyProvider-Klasse abgerufen wird.
Wenn der Schlüssel ein persistenter Schlüssel ist und der Entschlüsselungsvorgang eine Benutzeroberfläche erfordert oder lange dauert, verwenden Sie stattdessen die DecryptAsync-Methode . Beispielsweise ist die Benutzeroberfläche erforderlich, wenn sie mit einem stark geschützten Schlüssel entschlüsselt wird. Wenn ein persistenter Schlüssel verwendet wird und die Benutzeroberfläche erwartet wird, verwenden Sie die DecryptAsync-Methode , da die Decrypt-Methode fehlschlägt.