Dela via


Kryptera och dekryptera data med hjälp av en nyckel i Azure Key Vault med JavaScript

Skapa KeyClient med lämpliga programmatiska autentiseringsuppgifter och skapa sedan en CryptographyClient-användning av klienten för att ange, uppdatera och rotera en nyckel i Azure Key Vault.

Välj en krypteringsalgoritm

Om du vill använda SDK:et och dess angivna uppräkningar och typer på bästa sätt väljer du krypteringsalgoritmen innan du fortsätter till nästa avsnitt.

  • RSA – Rivest–Shamir–Adleman
  • AES GCM – Avancerat standardläge för galoisräknare för kryptering
  • AES CBC – Advanced Encryption Standard Cipher Block Chaining

Använd uppräkningen KnownEncryptionAlgorithms för att välja en specifik algoritm.

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

const myAlgorithm = KnownEncryptionAlgorithms.RSAOaep256

Hämta krypteringsnyckel

Skapa eller hämta keyVaultKey-krypteringsnyckeln från Nyckelvalvet som ska användas med kryptering och dekryptering.

Kryptera och dekryptera med en nyckel

Kryptering kräver något av följande parameterobjekt:

Alla tre parameterobjekten algorithm kräver och används plaintext för att kryptera. Ett exempel på RSA-krypteringsparametrar visas nedan.

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

EncryptParams-objektet anger parametrarna för kryptering. Använd följande krypteringsparameterobjekt för att ange egenskaper.

DekrypteraParams-objektet anger parametrarna för dekryptering. Använd följande dekrypteringsparameterobjekt för att ange egenskaper.

Nästa steg