In diesem Artikel werden hauptsächlich die asymmetrische Verschlüsselungsmethode und Codebeispiele von Node.j vorgestellt. Freunde, die sich dafür interessieren, können darauf verweisen.
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“. Schauen Sie sich auch gerne den GitHub von Programmierer Xiaoka an.
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()); // 你好,我是程序猿小卡
Anbei sind die öffentlichen und privaten Schlüssel.js:
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----- `;
Das Obige habe ich für alle zusammengestellt. Ich hoffe, dass es in Zukunft für alle hilfreich sein wird .
Verwandte Artikel:
So implementieren Sie die Bildvorschaufunktion im WeChat-Applet
So verwenden Sie Vue, um Baidu-Statistiken zu implementieren
So verwenden Sie das WeChat-Applet, um den MUI-Nummerneingabefeldeffekt zu erzielen
Grundlegende Verwendung der Renderfunktion in Vue (ausführliches Tutorial)
So verwenden Sie die Galerie-Slider-Komponente im WeChat-Miniprogramm
Verwendung der Kontrollkästchenkomponente im WeChat-Miniprogramm
Das obige ist der detaillierte Inhalt vonCodebeispiele für asymmetrische Verschlüsselung in Node.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!