Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Erstellen Sie den KeyClient mit den entsprechenden Anmeldeinformationen für die programmgesteuerte Authentifizierung, und erstellen Sie dann einen CryptographyClient und verwenden Sie ihn, um einen Schlüssel in Azure Key Vault festzulegen, zu aktivieren und zu rotieren.
Signieren von Daten
Einige Vorschläge zum Signieren von Daten:
- Hashen großer Daten vor dem Signieren
- Hashen unidirektionaler Daten vor der Signatur, z. B. Kennwörter
- Kleine wechselseitige Daten können direkt signiert werden
Signieren und Überprüfen großer oder unidirektionaler Daten mit einem Schlüssel
Verwenden Sie die folgenden Methoden, um Ihre verarbeitete Nachricht zu signieren und zu überprüfen:
Für verarbeitete Nachrichten:
- Signieren, um den Digest einer Nachricht zu signieren. Dies ist nützlich für große Daten oder unidirektionale Daten wie Kennwörter.
- Verifizieren, um den Digest einer Nachricht zu überprüfen.
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'}.`);
}
Signieren und Überprüfen kleiner Daten mit Schlüssel
Verwenden Sie die folgenden Methoden, um Ihre Daten zu signieren und zu überprüfen:
Für Daten:
- signData, um einen Datenblock zu signieren.
- verifyData, um Daten zu überprüfen.
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'}.`);
}