国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

淺析Node.js非對稱加密方法

2024-05-06 16:42:10
字體:
來源:轉載
供稿:網友

前言

剛回答了SegmentFault上一個兄弟提的問題《非對稱解密出錯》。這個屬于Node.js在安全上的應用,遇到同樣問題的人應該不少,基于回答的問題,這里簡單總結下。

非對稱加密的理論知識,可以參考筆者前面的文章《NODEJS進階:CRYPTO模塊之理論篇》。

完整的代碼可以在 《Nodejs學習筆記》 找到,也歡迎大家關注 程序猿小卡的GitHub。

加密、解密方法

在Node.js中,負責安全的模塊是crypto。非對稱加密中,公鑰加密,私鑰解密,加解密對應的API分別如下。

加密函數:

crypto.publicEncrypt(key, buffer)

解密函數:

crypto.privateDecrypt(privateKey, buffer)

入門例子

假設有如下utils.js

// utils.jsconst 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);};

測試代碼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()); // 你好,我是程序猿小卡

附上公鑰、私鑰 keys.js:

exports.privKey = `-----BEGIN RSA PRIVATE KEY-----MIICXQIBAAKBgQDFWnl8fChyKI/Tgo1ILB+IlGr8ZECKnnO8XRDwttBbf5EmG0qV8gs0aGkh649rb75I+tMu2JSNuVj61CncL/7Ct2kAZ6CZZo1vYgtzhlFnxd4V7Ra+aIwLZaXT/h3eE+/cFsL4VAJI5wXh4Mq4Vtu7uEjeogAOgXACaIqiFyrk3wIDAQABAoGBAKdrunYlqfY2fNUVAqAAdnvaVOxqa+psw4g/d3iNzjJhBRTLwDl2TZUXImEZQeEFueqVhoROTa/xVg/r3tshiD/QC71EfmPVBjBQJJIvJUbjtZJ/O+L2WxqzSvqewzYaTm6Te3kZeG/cULNMIL+xU7XsUmslbGPAurYmHA1jNKFpAkEA48aUogSv8VFnR2QuYmilz20LkCzffK2aq2+9iSz1ZjCvo+iuFt71Y3+etWomzcZCuJ5sn0w7lcSxnqyzCFDspQJBAN3O2VdQF3gua0Q5VHmK9AvsoXLmCfRa1RiKuFOtrtC609RfX4DCFxDxH09UVu/8Hmdau8t6OFExcBriIYJQwDMCQQCZLjFDDHfuiFo2js8K62mnJ6SBH0xlIrND2+/RUuTuBov4ZUC+rM7GTUtEodDazhyM4C4Yq0HfJNp25Zm5XALpAkBGatLpO04YI3R+dkzxQUH1PyyKU6m5X9TjM7cNKcikD4wMkjK5p+S2xjYQc1AeZEYqvc187dJPRIi4oC3PN1+tAkBuW51/5vBj+zmd73mVcTt28OmSKOX6kU29F0lvEh8IoHiLOo285vG5ZtmXiY58tAiPVQXa7eU8hPQHTHWa9qp6-----END RSA PRIVATE KEY-----`;exports.pubKey = `-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFWnl8fChyKI/Tgo1ILB+IlGr8ZECKnnO8XRDwttBbf5EmG0qV8gs0aGkh649rb75I+tMu2JSNuVj61CncL/7Ct2kAZ6CZZo1vYgtzhlFnxd4V7Ra+aIwLZaXT/h3eE+/cFsL4VAJI5wXh4Mq4Vtu7uEjeogAOgXACaIqiFyrk3wIDAQAB-----END PUBLIC KEY-----`;

 


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 望江县| 佛山市| 南康市| 囊谦县| 民县| 廊坊市| 阜城县| 湘潭市| 鹰潭市| 万盛区| 德安县| 桃园县| 周宁县| 靖西县| 溆浦县| 安阳市| 江西省| 田东县| 镇宁| 新化县| 浦城县| 潼南县| 诸暨市| 鄂托克旗| 义马市| 黎川县| 南充市| 平陆县| 铜鼓县| 博白县| 广昌县| 东平县| 苍梧县| 深水埗区| 泗阳县| 吉木乃县| 祥云县| 罗平县| 昔阳县| 磐石市| 泉州市|