JavaScript ile Azure Key Vault'ta anahtar kullanarak verileri şifreleme ve şifresini çözme

KeyClient'ı uygun programlı kimlik doğrulaması kimlik bilgileriyle oluşturun, ardından CryptographyClient oluşturmak için istemciyi kullanarak Azure Key Vault'ta bir anahtarı ayarlayın, güncelleştirin ve döndürün.

Şifreleme algoritması seçme

SDK'yı ve sağlanan sabit listelerini ve türlerini en iyi şekilde kullanmak için bir sonraki bölüme geçmeden önce şifreleme algoritmanızı seçin.

  • RSA - Rivest–Shamir–Adleman
  • AES GCM - Gelişmiş Şifreleme Standart Galois Sayaç Modu
  • AES CBC - Gelişmiş Şifreleme Standart Şifreleme Blok Zinciri

Belirli bir algoritmayı seçmek için KnownEncryptionAlgorithms sabit listesini kullanın.

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

const myAlgorithm = KnownEncryptionAlgorithms.RSAOaep256

Şifreleme anahtarını alma

Şifreleme ve şifre çözme ile kullanmak üzere Key Vault'tan KeyVaultKey şifreleme anahtarınızı oluşturun veya alın.

Anahtarla şifreleme ve şifre çözme

Şifreleme için aşağıdaki parametre nesnelerinden biri gerekir:

Üç parametre nesnesinin üçü de algorithm şifrelemek için ve plaintext öğesini gerektirir. Aşağıda RSA şifreleme parametrelerine bir örnek gösterilmiştir.

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 nesnesi, şifreleme parametrelerini ayarlar. Özellikleri ayarlamak için aşağıdaki şifreleme parametresi nesnelerini kullanın.

decryptParams nesnesi, şifre çözme parametrelerini ayarlar. Özellikleri ayarlamak için aşağıdaki şifre çözme parametresi nesnelerini kullanın.

Sonraki adımlar