CryptographyClient class
عميل يستخدم لتنفيذ عمليات التشفير على مفتاح Azure Key vault أو JsonWebKey المحلي.
المنشئون
| Cryptography |
إنشاء مثيل جديد لعميل التشفير للمفتاح المحدد في الوضع المحلي. مثال على الاستخدام:
|
| Cryptography |
إنشاء مثيل جديد لعميل التشفير للمفتاح المحدد مثال على الاستخدام:
|
الخصائص
| keyID | معرف المفتاح المستخدم لتنفيذ عمليات التشفير للعميل. |
| vault |
عنوان URL الأساسي للمخزن. إذا تم استخدام JsonWebKey محلية، فسيكون vaultUrl فارغا. |
الأساليب
| decrypt(Decrypt |
فك تشفير النص المشفر المحدد باستخدام معلمات فك التشفير المحددة. اعتمادا على الخوارزمية المستخدمة في معلمات فك التشفير، ستتغير مجموعة معلمات فك التشفير المحتملة. توصي Microsoft بعدم استخدام CBC دون التأكد أولا من تكامل النص المشفر باستخدام، على سبيل المثال، HMAC. راجع https://learn.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode لمزيد من المعلومات. مثال على الاستخدام:
|
| decrypt(string, Uint8Array, Decrypt |
فك تشفير النص المشفر المحدد باستخدام خوارزمية التشفير المحددة مثال على الاستخدام:
توصي Microsoft بعدم استخدام CBC دون التأكد أولا من تكامل النص المشفر باستخدام، على سبيل المثال، HMAC. راجع https://learn.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode لمزيد من المعلومات. |
| encrypt(Encrypt |
تشفير النص العادي المحدد بمعلمات التشفير المحددة. اعتمادا على الخوارزمية التي تم تعيينها في معلمات التشفير، ستتغير مجموعة معلمات التشفير المحتملة. مثال على الاستخدام:
|
| encrypt(string, Uint8Array, Encrypt |
تشفير النص العادي المحدد باستخدام خوارزمية التشفير المحددة مثال على الاستخدام:
|
| sign(string, Uint8Array, Sign |
توقيع ملخص رسالة بشكل مشفر مثال على الاستخدام:
|
| sign |
توقيع كتلة من البيانات بشكل مشفر مثال على الاستخدام:
|
| unwrap |
فك تشفير المفتاح الملتف المحدد باستخدام خوارزمية التشفير المحددة مثال على الاستخدام:
|
| verify(string, Uint8Array, Uint8Array, Verify |
التحقق من ملخص الرسالة الموقعة مثال على الاستخدام:
|
| verify |
التحقق من كتلة البيانات الموقعة مثال على الاستخدام:
|
| wrap |
التفاف المفتاح المحدد باستخدام خوارزمية التشفير المحددة مثال على الاستخدام:
|
تفاصيل المنشئ
CryptographyClient(JsonWebKey)
إنشاء مثيل جديد لعميل التشفير للمفتاح المحدد في الوضع المحلي.
مثال على الاستخدام:
import { CryptographyClient } from "@azure/keyvault-keys";
const jsonWebKey = {
kty: "RSA",
kid: "test-key-123",
use: "sig",
alg: "RS256",
n: new Uint8Array([112, 34, 56, 98, 123, 244, 200, 99]),
e: new Uint8Array([1, 0, 1]),
d: new Uint8Array([45, 67, 89, 23, 144, 200, 76, 233]),
p: new Uint8Array([34, 89, 100, 77, 204, 56, 29, 77]),
q: new Uint8Array([78, 99, 201, 45, 188, 34, 67, 90]),
dp: new Uint8Array([23, 45, 78, 56, 200, 144, 32, 67]),
dq: new Uint8Array([12, 67, 89, 144, 99, 56, 23, 45]),
qi: new Uint8Array([78, 90, 45, 201, 34, 67, 120, 55]),
};
const client = new CryptographyClient(jsonWebKey);
new CryptographyClient(key: JsonWebKey)
المعلمات
- key
- JsonWebKey
JsonWebKey لاستخدامه أثناء عمليات التشفير.
CryptographyClient(string | KeyVaultKey, TokenCredential, CryptographyClientOptions)
إنشاء مثيل جديد لعميل التشفير للمفتاح المحدد
مثال على الاستخدام:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
// Create or retrieve a key from the keyvault
const myKey = await client.createKey("MyKey", "RSA");
// Lastly, create our cryptography client and connect to the service
const cryptographyClient = new CryptographyClient(myKey, credential);
new CryptographyClient(key: string | KeyVaultKey, credential: TokenCredential, pipelineOptions?: CryptographyClientOptions)
المعلمات
- key
-
string | KeyVaultKey
المفتاح الذي يجب استخدامه أثناء مهام التشفير. يمكنك أيضا تمرير معرف المفتاح، أي عنوان url الخاص به هنا.
- credential
- TokenCredential
كائن ينفذ واجهة TokenCredential المستخدمة لمصادقة الطلبات إلى الخدمة. استخدم حزمة @azure/identity لإنشاء بيانات اعتماد تناسب احتياجاتك.
- pipelineOptions
- CryptographyClientOptions
خيارات البنية الأساسية لبرنامج ربط العمليات التجارية المستخدمة لتكوين طلبات واجهة برمجة تطبيقات Key Vault. احذف هذه المعلمة لاستخدام تكوين المسار الافتراضي.
تفاصيل الخاصية
keyID
معرف المفتاح المستخدم لتنفيذ عمليات التشفير للعميل.
undefined | string keyID
قيمة الخاصية
undefined | string
vaultUrl
تفاصيل الأسلوب
decrypt(DecryptParameters, DecryptOptions)
فك تشفير النص المشفر المحدد باستخدام معلمات فك التشفير المحددة. اعتمادا على الخوارزمية المستخدمة في معلمات فك التشفير، ستتغير مجموعة معلمات فك التشفير المحتملة.
توصي Microsoft بعدم استخدام CBC دون التأكد أولا من تكامل النص المشفر باستخدام، على سبيل المثال، HMAC. راجع https://learn.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode لمزيد من المعلومات.
مثال على الاستخدام:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey.id, credential);
const encryptResult = await cryptographyClient.encrypt({
algorithm: "RSA1_5",
plaintext: Buffer.from("My Message"),
});
console.log("encrypt result: ", encryptResult.result);
const decryptResult = await cryptographyClient.decrypt({
algorithm: "RSA1_5",
ciphertext: encryptResult.result,
});
console.log("decrypt result: ", decryptResult.result.toString());
function decrypt(decryptParameters: DecryptParameters, options?: DecryptOptions): Promise<DecryptResult>
المعلمات
- decryptParameters
- DecryptParameters
معلمات فك التشفير.
- options
- DecryptOptions
خيارات إضافية.
المرتجعات
Promise<DecryptResult>
decrypt(string, Uint8Array, DecryptOptions)
تحذير
واجهة برمجة التطبيقات هذه مهملة الآن.
Use decrypt({ algorithm, ciphertext }, options) instead.
فك تشفير النص المشفر المحدد باستخدام خوارزمية التشفير المحددة
مثال على الاستخدام:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey.id, credential);
const encryptResult = await cryptographyClient.encrypt({
algorithm: "RSA1_5",
plaintext: Buffer.from("My Message"),
});
console.log("encrypt result: ", encryptResult.result);
const decryptResult = await cryptographyClient.decrypt({
algorithm: "RSA1_5",
ciphertext: encryptResult.result,
});
console.log("decrypt result: ", decryptResult.result.toString());
توصي Microsoft بعدم استخدام CBC دون التأكد أولا من تكامل النص المشفر باستخدام، على سبيل المثال، HMAC. راجع https://learn.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode لمزيد من المعلومات.
function decrypt(algorithm: string, ciphertext: Uint8Array, options?: DecryptOptions): Promise<DecryptResult>
المعلمات
- algorithm
-
string
الخوارزمية المراد استخدامها.
- ciphertext
-
Uint8Array
النص المراد فك تشفيره.
- options
- DecryptOptions
خيارات إضافية.
المرتجعات
Promise<DecryptResult>
encrypt(EncryptParameters, EncryptOptions)
تشفير النص العادي المحدد بمعلمات التشفير المحددة. اعتمادا على الخوارزمية التي تم تعيينها في معلمات التشفير، ستتغير مجموعة معلمات التشفير المحتملة.
مثال على الاستخدام:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey.id, credential);
const encryptResult = await cryptographyClient.encrypt({
algorithm: "RSA1_5",
plaintext: Buffer.from("My Message"),
});
console.log("encrypt result: ", encryptResult.result);
function encrypt(encryptParameters: EncryptParameters, options?: EncryptOptions): Promise<EncryptResult>
المعلمات
- encryptParameters
- EncryptParameters
معلمات التشفير، التي تم مفتاحها على خوارزمية التشفير المختارة.
- options
- EncryptOptions
خيارات إضافية.
المرتجعات
Promise<EncryptResult>
encrypt(string, Uint8Array, EncryptOptions)
تحذير
واجهة برمجة التطبيقات هذه مهملة الآن.
Use encrypt({ algorithm, plaintext }, options) instead.
تشفير النص العادي المحدد باستخدام خوارزمية التشفير المحددة
مثال على الاستخدام:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey.id, credential);
const encryptResult = await cryptographyClient.encrypt({
algorithm: "RSA1_5",
plaintext: Buffer.from("My Message"),
});
console.log("encrypt result: ", encryptResult.result);
function encrypt(algorithm: string, plaintext: Uint8Array, options?: EncryptOptions): Promise<EncryptResult>
المعلمات
- algorithm
-
string
الخوارزمية المراد استخدامها.
- plaintext
-
Uint8Array
النص المراد تشفيره.
- options
- EncryptOptions
خيارات إضافية.
المرتجعات
Promise<EncryptResult>
sign(string, Uint8Array, SignOptions)
توقيع ملخص رسالة بشكل مشفر
مثال على الاستخدام:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
import { createHash } from "node:crypto";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
let myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey, credential);
const signatureValue = "MySignature";
const hash = createHash("sha256");
const digest = hash.update(signatureValue).digest();
console.log("digest: ", digest);
const signResult = await cryptographyClient.sign("RS256", digest);
console.log("sign result: ", signResult.result);
function sign(algorithm: string, digest: Uint8Array, options?: SignOptions): Promise<SignResult>
المعلمات
- algorithm
-
string
خوارزمية التوقيع المراد استخدامها.
- digest
-
Uint8Array
ملخص البيانات المراد توقيعها.
- options
- SignOptions
خيارات إضافية.
المرتجعات
Promise<SignResult>
signData(string, Uint8Array, SignOptions)
توقيع كتلة من البيانات بشكل مشفر
مثال على الاستخدام:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey, credential);
const signResult = await cryptographyClient.signData("RS256", Buffer.from("My Message"));
console.log("sign result: ", signResult.result);
function signData(algorithm: string, data: Uint8Array, options?: SignOptions): Promise<SignResult>
المعلمات
- algorithm
-
string
خوارزمية التوقيع المراد استخدامها.
- data
-
Uint8Array
البيانات المراد توقيعها.
- options
- SignOptions
خيارات إضافية.
المرتجعات
Promise<SignResult>
unwrapKey(KeyWrapAlgorithm, Uint8Array, UnwrapKeyOptions)
فك تشفير المفتاح الملتف المحدد باستخدام خوارزمية التشفير المحددة
مثال على الاستخدام:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey, credential);
const wrapResult = await cryptographyClient.wrapKey("RSA-OAEP", Buffer.from("My Key"));
console.log("wrap result:", wrapResult.result);
const unwrapResult = await cryptographyClient.unwrapKey("RSA-OAEP", wrapResult.result);
console.log("unwrap result: ", unwrapResult.result);
function unwrapKey(algorithm: KeyWrapAlgorithm, encryptedKey: Uint8Array, options?: UnwrapKeyOptions): Promise<UnwrapResult>
المعلمات
- algorithm
- KeyWrapAlgorithm
خوارزمية فك التشفير لاستخدامها في فك تشفير المفتاح.
- encryptedKey
-
Uint8Array
المفتاح المشفر لإلغاء التكبير.
- options
- UnwrapKeyOptions
خيارات إضافية.
المرتجعات
Promise<UnwrapResult>
verify(string, Uint8Array, Uint8Array, VerifyOptions)
التحقق من ملخص الرسالة الموقعة
مثال على الاستخدام:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
import { createHash } from "node:crypto";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey, credential);
const hash = createHash("sha256");
hash.update("My Message");
const digest = hash.digest();
const signResult = await cryptographyClient.sign("RS256", digest);
console.log("sign result: ", signResult.result);
const verifyResult = await cryptographyClient.verify("RS256", digest, signResult.result);
console.log("verify result: ", verifyResult.result);
function verify(algorithm: string, digest: Uint8Array, signature: Uint8Array, options?: VerifyOptions): Promise<VerifyResult>
المعلمات
- algorithm
-
string
خوارزمية التوقيع لاستخدامها للتحقق مع.
- digest
-
Uint8Array
الملخص للتحقق.
- signature
-
Uint8Array
التوقيع للتحقق من الملخص مقابله.
- options
- VerifyOptions
خيارات إضافية.
المرتجعات
Promise<VerifyResult>
verifyData(string, Uint8Array, Uint8Array, VerifyOptions)
التحقق من كتلة البيانات الموقعة
مثال على الاستخدام:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey, credential);
const buffer = Buffer.from("My Message");
const signResult = await cryptographyClient.signData("RS256", buffer);
console.log("sign result: ", signResult.result);
const verifyResult = await cryptographyClient.verifyData("RS256", buffer, signResult.result);
console.log("verify result: ", verifyResult.result);
function verifyData(algorithm: string, data: Uint8Array, signature: Uint8Array, options?: VerifyOptions): Promise<VerifyResult>
المعلمات
- algorithm
-
string
الخوارزمية التي يجب استخدامها للتحقق مع.
- data
-
Uint8Array
كتلة البيانات الموقعة للتحقق منها.
- signature
-
Uint8Array
التوقيع الذي يجب التحقق من حظره.
- options
- VerifyOptions
خيارات إضافية.
المرتجعات
Promise<VerifyResult>
wrapKey(KeyWrapAlgorithm, Uint8Array, WrapKeyOptions)
التفاف المفتاح المحدد باستخدام خوارزمية التشفير المحددة
مثال على الاستخدام:
import { DefaultAzureCredential } from "@azure/identity";
import { KeyClient, CryptographyClient } from "@azure/keyvault-keys";
const credential = new DefaultAzureCredential();
const vaultName = "<YOUR KEYVAULT NAME>";
const url = `https://${vaultName}.vault.azure.net`;
const client = new KeyClient(url, credential);
const myKey = await client.createKey("MyKey", "RSA");
const cryptographyClient = new CryptographyClient(myKey, credential);
const wrapResult = await cryptographyClient.wrapKey("RSA-OAEP", Buffer.from("My Key"));
console.log("wrap result:", wrapResult.result);
function wrapKey(algorithm: KeyWrapAlgorithm, key: Uint8Array, options?: WrapKeyOptions): Promise<WrapResult>
المعلمات
- algorithm
- KeyWrapAlgorithm
خوارزمية التشفير المراد استخدامها لتضمين المفتاح المحدد.
- key
-
Uint8Array
المفتاح المراد التفافه.
- options
- WrapKeyOptions
خيارات إضافية.
المرتجعات
Promise<WrapResult>