Encrypt | encrypt-Methode

CryptographicEngine.Encrypt | encrypt Method

Verschlüsselt Daten mithilfe eines symmetrischen oder asymmetrischen Algorithmus.

Syntax


var iBuffer = Windows.Security.Cryptography.Core.CryptographicEngine.encrypt(key, data, iv);

Parameter

key

Typ: CryptographicKey

Zur Verschlüsselung zu verwendender kryptografischer Schlüssel. Dies kann ein asymmetrischer oder symmetrischer Schlüssel sein. Weitere Informationen finden Sie unter AsymmetricKeyAlgorithmProvider und SymmetricKeyAlgorithmProvider.

data

Typ: IBuffer

Zu verschlüsselnde Daten.

iv

Typ: IBuffer

Puffer, der den Initialisierungsvektor enthält. Dies kann für einen symmetrischen Algorithmus null sein und muss für einen asymmetrischen Algorithmus immer null sein. Wenn ein Initialisierungsvektor (IV) verwendet wurde, um die Daten zu verschlüsseln, müssen Sie die gleiche IV verwenden, um die Daten zu entschlüsseln. Sie können die GenerateRandom-Methode verwenden, um einen IV zu erstellen, der Zufallsdaten enthält. Andere IVs, beispielsweise die von einer Nonce generierten, erfordern benutzerdefinierte Implementierung. Weitere Informationen stehen unter Symmetrische Verschlüsselung von Schlüsseln zur Verfügung.

Die Algorithmen für den Cipher Block Chaining (CBC) Blockverschlüsselungsmodus erfordern einen Initialisierungsvektor. Weitere Informationen finden Sie in den Hinweisen.

Rückgabewert

Typ: IBuffer

Verschlüsselte Daten.

Hinweise

Von den symmetrischen Algorithmen, die von Microsoft unterstützt werden, erfordern die folgenden einen Initialisierungsvektor:

Beispiele


public IBuffer SampleCipherEncryption(
    String strMsg,
    String strAlgName,
    UInt32 keyLength,
    out BinaryStringEncoding encoding,
    out IBuffer iv,
    out CryptographicKey key)
{
    // Initialize the initialization vector.
    iv = null;

    // Initialize the binary encoding value.
    encoding = BinaryStringEncoding.Utf8;

    // Create a buffer that contains the encoded message to be encrypted. 
    IBuffer buffMsg = CryptographicBuffer.ConvertStringToBinary(strMsg, encoding);

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

    // Determine whether the message length is a multiple of the block length.
    // This is not necessary for PKCS #7 algorithms which automatically pad the
    // message to an appropriate length.
    if (!strAlgName.Contains("PKCS7"))
    {
        if ((buffMsg.Length % objAlg.BlockLength) != 0)
        {
            throw new Exception("Message buffer length must be multiple of block length.");
        }
    }

    // Create a symmetric key.
    IBuffer keyMaterial = CryptographicBuffer.GenerateRandom(keyLength);
    key = objAlg.CreateSymmetricKey(keyMaterial);

    // CBC algorithms require an initialization vector. Here, a random
    // number is used for the vector.
    if (strAlgName.Contains("CBC"))
    {
        iv = CryptographicBuffer.GenerateRandom(objAlg.BlockLength);
    }

    // Encrypt the data and return.
    IBuffer buffEncrypt = CryptographicEngine.Encrypt(key, buffMsg, iv);
    return buffEncrypt;
}


Anforderungen

Mindestens unterstützter Client

Windows 8

Mindestens unterstützter Server

Windows Server 2012

Namespace

Windows.Security.Cryptography.Core
Windows::Security::Cryptography::Core [C++]

Metadaten

Windows.winmd

Siehe auch

AsymmetricKeyAlgorithmProvider
Asymmetrische Verschlüsselung
CryptographicEngine
Decrypt
SymmetricKeyAlgorithmProvider
Verschlüsselung mit symmetrischen Schlüsseln

 

 

Anzeigen:
© 2017 Microsoft