Freigeben über


Verschlüsseln und Entschlüsseln von Daten mithilfe eines Schlüssels in Azure Key Vault mit JavaScript

Erstellen Sie den KeyClient mit den entsprechenden Anmeldeinformationen für die programmgesteuerte Authentifizierung, und erstellen Sie dann einen CryptographyClient und verwenden Sie ihn, um einen Schlüssel in Azure Key Vault festzulegen, zu aktivieren und zu rotieren.

Verschlüsselungsalgorithmus auswählen

Um das SDK und die bereitgestellten Enumerationen und Typen optimal zu nutzen, wählen Sie Ihren Verschlüsselungsalgorithmus aus, bevor Sie mit dem nächsten Abschnitt fortfahren.

  • RSA – Rivest–Shamir–Adleman
  • AES GCM – Advanced Encryption Standard Galois Counter Mode
  • AES CBC – Advanced Encryption Standard Cipher Block Chaining

Verwenden Sie die Enumeration KnownEncryptionAlgorithms, um einen bestimmten Algorithmus auszuwählen.

import {
  KnownEncryptionAlgorithms
} from '@azure/keyvault-keys';

const myAlgorithm = KnownEncryptionAlgorithms.RSAOaep256

Get Verschlüsselungsschlüssel

ErstellenSie oder rufen Sie Ihren KeyVaultKey-Verschlüsselungsschlüssel aus dem Key Vault ab, der für die Verschlüsselung und Entschlüsselung verwendet werden soll.

Verschlüsseln und Entschlüsseln mit einem Schlüssel

Die Verschlüsselung erfordert eines der folgenden Parameterobjekte:

Alle drei Parameterobjekte erfordern algorithm und plaintext, die zum Verschlüsseln verwendet werden. Ein Beispiel für RSA-Verschlüsselungsparameter finden Sie unten.

import { DefaultAzureCredential } from '@azure/identity';
import {
  CryptographyClient,
  KeyClient,
  KnownEncryptionAlgorithms
} from '@azure/keyvault-keys';

// get service client using AZURE_KEYVAULT_NAME environment variable
const credential = new DefaultAzureCredential();
const serviceClient = new KeyClient(
`https://${process.env.AZURE_KEYVAULT_NAME}.vault.azure.net`,
credential
);

// get existing key
const keyVaultKey = await serviceClient.getKey('myRsaKey');

if (keyVaultKey?.name) {

    // get encryption client
    const encryptClient = new CryptographyClient(keyVaultKey, credential);
    
    // set data to encrypt
    const originalInfo = 'Hello World';
    
    // set encryption algorithm
    const algorithm = KnownEncryptionAlgorithms.RSAOaep256;
    
    // encrypt settings: RsaEncryptParameters | AesGcmEncryptParameters | AesCbcEncryptParameters
    const encryptParams = {
        algorithm,
        plaintext: Buffer.from(originalInfo)
    };
    
    // encrypt
    const encryptResult = await encryptClient.encrypt(encryptParams);
    
    // ... hand off encrypted result to another process
    // ... other process needs to decrypt data

    // decrypt settings: DecryptParameters
    const decryptParams = {
        algorithm,
        ciphertext: encryptResult.result
    };
    
    // decrypt
    const decryptResult = await encryptClient.decrypt(decryptParams);
    console.log(decryptResult.result.toString());
}

Das encryptParams-Objekt legt die Parameter für die Verschlüsselung fest. Verwenden Sie die folgenden Parameterobjekte für die Verschlüsselung, um Eigenschaften festzulegen.

Das decryptParams-Objekt legt die Parameter für die Entschlüsselung fest. Verwenden Sie die folgenden Parameterobjekte für die Entschlüsselung, um Eigenschaften festzulegen.

Nächste Schritte