Dies ist das NodeJS Dokumentation Beispiel:.Decrypt Geheimnis mit ECDH und NodeJS Krypto
const crypto = require('crypto');
const alice = crypto.createECDH('secp256k1');
const bob = crypto.createECDH('secp256k1');
// Note: This is a shortcut way to specify one of Alice's previous private
// keys. It would be unwise to use such a predictable private key in a real
// application.
alice.setPrivateKey(
crypto.createHash('sha256').update('alice', 'utf8').digest()
);
// Bob uses a newly generated cryptographically strong
// pseudorandom key pair bob.generateKeys();
const alice_secret = alice.computeSecret(bob.getPublicKey(), null, 'hex');
const bob_secret = bob.computeSecret(alice.getPublicKey(), null, 'hex');
// alice_secret and bob_secret should be the same shared secret value
console.log(alice_secret === bob_secret);
Ich verstehe nicht, wo das Geheimnis kommt Angenommen, ich eine Nachricht foo-bar
von Bob entschlüsseln möchte (mit Alice öffentlich verschlüsselte Schlüssel). Ich habe Alices privaten und öffentlichen Schlüssel und Bobs verschlüsselte Nachricht, wie kann ich die Nachricht mit all dem entschlüsseln?
Können Sie ein kleines Beispiel geben, wie Alice würde Bob Nachricht entschlüsseln? Danke im Voraus! –
Die Antwort wurde aktualisiert. – Roshith
Beachten Sie, dass dieser Code ** völlig unsicher ist **, wenn er für mehr als eine Nachricht mit demselben symmetrischen Schlüssel ('bob_secret' oder' alice_secret') verwendet wird. Der CTR-Modus ist ein Streaming-Modus, der eine Mehrfachbelegung aufweist, wenn eine IV + Tastenkombination zweimal verwendet wird (Schlüssel und IV werden deterministisch aus dem übergebenen "xxx_secret" abgeleitet). Es ist besser, für jede Verschlüsselung mit "crypto.createCipheriv" zufällig eine 12-Byte-IV zu erzeugen. –