Dieses Mal bringe ich Ihnen eine detaillierte Erklärung der asymmetrischen Verschlüsselung von Node.js Was sind die Vorsichtsmaßnahmen bei der Verwendung der asymmetrischen Verschlüsselung von Node.js? Schauen Sie mal rein.
Ich habe gerade die von einem Bruder auf SegmentFault gestellte Frage „Asymmetrischer Entschlüsselungsfehler“ beantwortet. Dies ist eine Sicherheitsanwendung von Node.js. Aufgrund der beantworteten Fragen finden Sie hier eine kurze Zusammenfassung.
Theoretische Kenntnisse zur asymmetrischen Verschlüsselung finden Sie im vorherigen Artikel des Autors „NODEJS Advanced: CRYPTO Module Theory“.
Den vollständigen Code finden Sie in „Nodejs Learning Notes“. Sie können auch gerne dem GitHub von Programmierer Xiaoka folgen.
In Node.js ist Krypto das für die Sicherheit verantwortliche Modul. Bei der asymmetrischen Verschlüsselung lauten die Verschlüsselung mit öffentlichem Schlüssel, die Entschlüsselung mit privatem Schlüssel und die entsprechenden APIs für die Verschlüsselung und Entschlüsselung wie folgt.
Verschlüsselungsfunktion:
crypto.publicEncrypt(key, buffer)
Entschlüsselungsfunktion:
crypto.privateDecrypt(privateKey, buffer)
Angenommen, es gibt die folgenden utils.js
// utils.js const crypto = require('crypto'); // 加密方法 exports.encrypt = (data, key) => { // 注意,第二个参数是Buffer类型 return crypto.publicEncrypt(key, Buffer.from(data)); }; // 解密方法 exports.decrypt = (encrypted, key) => { // 注意,encrypted是Buffer类型 return crypto.privateDecrypt(key, encrypted); };
Testcode app.js:
const utils = require('./utils'); const keys = require('./keys'); const plainText = '你好,我是程序猿小卡'; const crypted = utils.encrypt(plainText, keys.pubKey); // 加密 const decrypted = utils.decrypt(crypted, keys.privKey); // 解密 console.log(decrypted.toString()); // 你好,我是程序猿小卡
Hängen Sie den öffentlichen Schlüssel und den privaten Schlüssel an Der Fall in diesem Artikel und mehr. Wie aufregend, achten Sie bitte auf andere verwandte Artikel auf der chinesischen PHP-Website!
exports.privKey = `-----BEGIN RSA PRIVATE KEY----- MIICXQIBAAKBgQDFWnl8fChyKI/Tgo1ILB+IlGr8ZECKnnO8XRDwttBbf5EmG0qV 8gs0aGkh649rb75I+tMu2JSNuVj61CncL/7Ct2kAZ6CZZo1vYgtzhlFnxd4V7Ra+ aIwLZaXT/h3eE+/cFsL4VAJI5wXh4Mq4Vtu7uEjeogAOgXACaIqiFyrk3wIDAQAB AoGBAKdrunYlqfY2fNUVAqAAdnvaVOxqa+psw4g/d3iNzjJhBRTLwDl2TZUXImEZ QeEFueqVhoROTa/xVg/r3tshiD/QC71EfmPVBjBQJJIvJUbjtZJ/O+L2WxqzSvqe wzYaTm6Te3kZeG/cULNMIL+xU7XsUmslbGPAurYmHA1jNKFpAkEA48aUogSv8VFn R2QuYmilz20LkCzffK2aq2+9iSz1ZjCvo+iuFt71Y3+etWomzcZCuJ5sn0w7lcSx nqyzCFDspQJBAN3O2VdQF3gua0Q5VHmK9AvsoXLmCfRa1RiKuFOtrtC609RfX4DC FxDxH09UVu/8Hmdau8t6OFExcBriIYJQwDMCQQCZLjFDDHfuiFo2js8K62mnJ6SB H0xlIrND2+/RUuTuBov4ZUC+rM7GTUtEodDazhyM4C4Yq0HfJNp25Zm5XALpAkBG atLpO04YI3R+dkzxQUH1PyyKU6m5X9TjM7cNKcikD4wMkjK5p+S2xjYQc1AeZEYq vc187dJPRIi4oC3PN1+tAkBuW51/5vBj+zmd73mVcTt28OmSKOX6kU29F0lvEh8I oHiLOo285vG5ZtmXiY58tAiPVQXa7eU8hPQHTHWa9qp6 -----END RSA PRIVATE KEY----- `; exports.pubKey = `-----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFWnl8fChyKI/Tgo1ILB+IlGr8 ZECKnnO8XRDwttBbf5EmG0qV8gs0aGkh649rb75I+tMu2JSNuVj61CncL/7Ct2kA Z6CZZo1vYgtzhlFnxd4V7Ra+aIwLZaXT/h3eE+/cFsL4VAJI5wXh4Mq4Vtu7uEje ogAOgXACaIqiFyrk3wIDAQAB -----END PUBLIC KEY----- `;
Wie man mit unvollständiger Seitenanzeige im 360-Browser-Kompatibilitätsmodus umgeht
CSS3 zur Implementierung von Tilt und Rotationsanimationseffekt
Verschiedene Schreibmethoden von CSS
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der asymmetrischen Verschlüsselung in Node.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!