Criptografar e descriptografar dados usando uma chave no Cofre de Chaves do Azure com JavaScript
Crie o KeyClient com as credenciais de autenticação programática apropriadas e, em seguida, crie um CryptographyClient use o cliente para definir, atualizar e girar uma chave no Cofre de Chaves do Azure.
Selecione um algoritmo de encriptação
Para fazer o melhor uso do SDK e seus enums e tipos fornecidos, selecione seu algoritmo de criptografia antes de continuar para a próxima seção.
- RSA - Rivest–Shamir–Adleman
- AES GCM - Modo de Contador Galois Padrão de Criptografia Avançada
- AES CBC - Encadeamento de blocos de cifra padrão de criptografia avançada
Use o enum KnownEncryptionAlgorithms para selecionar um algoritmo específico.
import {
KnownEncryptionAlgorithms
} from '@azure/keyvault-keys';
const myAlgorithm = KnownEncryptionAlgorithms.RSAOaep256
Obter chave de encriptação
Crie ou obtenha a sua chave de encriptação KeyVaultKey a partir do Cofre da Chave para utilizar com encriptação e desencriptação.
Criptografar e descriptografar com uma chave
A criptografia requer um dos seguintes objetos de parâmetro:
Todos os três objetos de parâmetro requerem o algorithm
e o plaintext
usado para criptografar. Um exemplo de parâmetros de criptografia RSA é mostrado abaixo.
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());
}
O objeto encryptParams define os parâmetros para criptografia. Use os seguintes objetos de parâmetro encrypt para definir propriedades.
O objeto decryptParams define os parâmetros para desencriptação. Use os seguintes objetos de parâmetro de descriptografia para definir propriedades.