Sdílet prostřednictvím


Šifrování a dešifrování dat pomocí klíče ve službě Azure Key Vault pomocí JavaScriptu

Vytvořte KeyClient s příslušnými přihlašovacími údaji pro programové ověřování a pak pomocí klienta nastavte, aktualizujte a obměňte klíč ve službě Azure Key Vault.

Výběr šifrovacího algoritmu

Pokud chcete nejlépe využít sadu SDK a její poskytované výčty a typy, vyberte svůj šifrovací algoritmus, než budete pokračovat k další části.

  • RSA – Rivest–Shamir–Adleman
  • AES GCM – Režim čítače Galois úrovně Advanced Encryption Standard
  • AES CBC – Řetězení bloků šifrovacích protokolů Advanced Encryption Standard

Pomocí výčtu KnownEncryptionAlgorithms vyberte konkrétní algoritmus.

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

const myAlgorithm = KnownEncryptionAlgorithms.RSAOaep256

Získání šifrovacího klíče

Vytvořte nebo získejte šifrovací klíč KeyVaultKey ze služby Key Vault, který se použije s šifrováním a dešifrováním.

Šifrování a dešifrování pomocí klíče

Šifrování vyžaduje jeden z následujících objektů parametrů:

Všechny tři objekty parametrů vyžadují algorithm a plaintext použité k šifrování. Příklad parametrů šifrování RSA je uvedený níže.

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());
}

Objekt encryptParams nastaví parametry pro šifrování. K nastavení vlastností použijte následující objekty parametru encrypt.

Objekt decryptParams nastaví parametry pro dešifrování. K nastavení vlastností použijte následující dešifrovací objekty parametrů.

Další kroky