Cifrado y descifrado de datos con claves en Azure Key Vault con JavaScript
Cree KeyClient con las credenciales de autenticación de programación adecuadas y, después, cree CryptographyClient y use el cliente para establecer, actualizar y alternar una clave de Azure Key Vault.
Seleccionar un algoritmo de cifrado
Para aprovechar mejor el SDK y sus enumeraciones y tipos proporcionados, seleccione el algoritmo de cifrado antes de continuar con la sección siguiente.
- RSA - Rivest–Shamir–Adleman
- AES GCM: modo de contador de Galois Estándar de cifrado avanzado
- AES CBC: encadenamiento de bloques de cifrado Estándar de cifrado avanzado
Use la enumeración KnownEncryptionAlgorithms para seleccionar un algoritmo específico.
import {
KnownEncryptionAlgorithms
} from '@azure/keyvault-keys';
const myAlgorithm = KnownEncryptionAlgorithms.RSAOaep256
Obtención de la clave de cifrado
Cree u obtenga la clave de cifrado KeyVaultKey de Key Vault para usarla con cifrado y descifrado.
Cifrado y descifrado con una clave
El cifrado requiere uno de los siguientes objetos de parámetro:
Los tres objetos de parámetro requieren el algorithm
y el plaintext
que se usan para cifrar. A continuación, se muestra un ejemplo de parámetros de cifrado RSA.
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());
}
El objeto encryptParams establece los parámetros para el cifrado. Use los siguientes objetos de parámetro de cifrado para establecer propiedades.
El objeto decryptParams establece los parámetros para el descifrado. Use los siguientes objetos de parámetro de descifrado para establecer propiedades.