Heim > Web-Frontend > js-Tutorial > Codebeispiele für asymmetrische Verschlüsselung in Node.js

Codebeispiele für asymmetrische Verschlüsselung in Node.js

亚连
Freigeben: 2018-06-09 10:51:29
Original
2698 Leute haben es durchsucht

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.

Vorwort

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.

Verschlüsselungs- und Entschlüsselungsmethoden

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)
Nach dem Login kopieren

Entschlüsselungsfunktion:

crypto.privateDecrypt(privateKey, buffer)
Nach dem Login kopieren

Beispiel für den ersten Schritt

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);
};
Nach dem Login kopieren

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()); // 你好,我是程序猿小卡
Nach dem Login kopieren

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-----
`;
Nach dem Login kopieren

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

So verwenden Sie die Scroll-View-Komponente, um eine Scroll-Animation im WeChat-Miniprogramm zu implementieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage