Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Buat KeyClient dengan kredensial autentikasi terprogram yang sesuai, lalu buat CryptographyClient menggunakan klien untuk mengatur, memperbarui, dan memutar kunci di Azure Key Vault.
Menandatangani data
Beberapa saran untuk menandatangani data:
- Hash data besar sebelum penandatanganan
- Hash data satu arah sebelum menandatangani seperti kata sandi
- Data 2 arah kecil dapat ditandatangani secara langsung
Menandatangani dan memverifikasi data besar atau satu arah dengan kunci
Untuk menandatangani dan memverifikasi pesan yang Anda cerna, gunakan metode berikut:
Untuk pesan yang dicerna:
- tanda tangani untuk menandatangani hash pesan. Ini berguna untuk data besar atau data satu arah seperti kata sandi.
- verifikasi untuk memverifikasi hash pesan.
import { createHash } from "crypto";
import { DefaultAzureCredential } from '@azure/identity';
import {
CryptographyClient,
KeyClient,
KnownSignatureAlgorithms
} from '@azure/keyvault-keys';
// get service client
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 with key
const cryptoClient = new CryptographyClient(keyVaultKey, credential);
// get digest
const digestableData = "MyLargeOrOneWayData";
const digest = createHash('sha256')
.update(digestableData)
.update(process.env.SYSTEM_SALT || '')
.digest();
// sign digest
const { result: signature } = await cryptoClient.sign(KnownSignatureAlgorithms.RS256, digest);
// store signed digest in database
// verify signature
const { result: verified } = await cryptoClient.verify(KnownSignatureAlgorithms.RS256, digest, signature);
console.log(`Verification ${verified ? 'succeeded' : 'failed'}.`);
}
Menandatangani dan memverifikasi data kecil dengan kunci
Untuk menandatangani dan memverifikasi data Anda, gunakan metode berikut:
Untuk data:
- signData untuk menandatangani blok data.
- verifyData untuk memverifikasi data.
import { createHash } from "crypto";
import { DefaultAzureCredential } from '@azure/identity';
import {
CryptographyClient,
KeyClient,
KnownSignatureAlgorithms
} from '@azure/keyvault-keys';
// get service client
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 with key
const cryptoClient = new CryptographyClient(keyVaultKey, credential);
const data = 'Hello you bright big beautiful world!';
// sign
const { result: signature } = await cryptoClient.signData(
KnownSignatureAlgorithms.RS256,
Buffer.from(data, 'utf8')
);
// verify signature
const { result: verified } = await cryptoClient.verifyData(
KnownSignatureAlgorithms.RS256,
Buffer.from(data, 'utf8'),
signature
);
console.log(`Verification ${verified ? 'succeeded' : 'failed'}.`);
}