مشاركة عبر


تشفير البيانات وفك تشفيرها باستخدام مفتاح في Azure Key Vault باستخدام JavaScript

إنشاء KeyClient مع بيانات اعتماد المصادقة البرمجية المناسبة، ثم إنشاء تشفيرClient استخدام العميل لتعيين وتحديث وتدوير مفتاح في Azure Key Vault.

تحديد خوارزمية تشفير

لتحقيق أفضل استخدام ل SDK وقوائم التعداد والأنواع المتوفرة الخاصة بها، حدد خوارزمية التشفير قبل المتابعة إلى القسم التالي.

  • RSA - Rivest–Shamir–Adleman
  • AES GCM - وضع عداد Galois القياسي المتقدم للتشفير
  • AES CBC - سلسلة كتل تشفير قياسية متقدمة

استخدم قائمة تعداد KnownEncryptionAlgorithms لتحديد خوارزمية معينة.

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

const myAlgorithm = KnownEncryptionAlgorithms.RSAOaep256

الحصول على مفتاح التشفير

إنشاء مفتاح تشفير KeyVaultKey أو الحصول عليه من Key Vault لاستخدامه مع التشفير وفك التشفير.

تشفير وفك تشفير باستخدام مفتاح

يتطلب التشفير أحد كائنات المعلمات التالية:

تتطلب algorithm كائنات المعلمات الثلاثة و المستخدمة plaintext للتشفير. يظهر أدناه مثال على معلمات تشفير 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());
}

يقوم كائن encryptParams بتعيين معلمات التشفير. استخدم عناصر المعلمات المشفرة التالية لتعيين الخصائص.

يقوم الكائن decryptParams بتعيين المعلمات لفك التشفير. استخدم كائنات معلمة فك التشفير التالية لتعيين الخصائص.

الخطوات التالية