摘要:非對稱加密的理論知識,可以參考筆者前面的文章進階模塊之理論篇。非對稱加密中,公鑰加密,私鑰解密,加解密對應的分別如下。相關鏈接程序猿小卡的學習筆記非對稱解密出錯
前言
剛回答了SegmentFault上一個兄弟提的問題《非對稱解密出錯》。這個屬于Node.js在安全上的應用,遇到同樣問題的人應該不少,基于回答的問題,這里簡單總結下。
非對稱加密的理論知識,可以參考筆者前面的文章《NODEJS進階:CRYPTO模塊之理論篇》。
完整的代碼可以在 《Nodejs學習筆記》 找到,也歡迎大家關注 程序猿小卡的GitHub。
加密、解密方法在Node.js中,負責安全的模塊是crypto。非對稱加密中,公鑰加密,私鑰解密,加解密對應的API分別如下。
加密函數:
crypto.publicEncrypt(key, buffer)
解密函數:
crypto.privateDecrypt(privateKey, buffer)入門例子
假設有如下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); };
測試代碼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+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----- `;小結
可以看到,通過Node.js進行非對稱加密、解密還是挺方便的。更多用法,可以參考官方文檔。
相關鏈接程序猿小卡的GitHub
Nodejs學習筆記
非對稱解密出錯
https://nodejs.org/api/crypto.html
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/11335.html
摘要:前言總括原文博客地址協議之數據加密過程詳解知乎專欄簡書專題前端進擊者知乎前端進擊者簡書博主博客地址的個人博客生活只要你聽過,不可能沒聽過協議吧,協議是一種安全協議。 前言 總括: 原文博客地址:SSL協議之數據加密過程詳解 知乎專欄&&簡書專題:前端進擊者(知乎)&&前端進擊者(簡書) 博主博客地址:Damonare的個人博客 生活 SSL 只要你聽過HTTPS,不可能沒聽過...
摘要:加解密偽代碼加密解密非對稱加密又稱公開秘鑰加密。常見的非對稱加密算法。通常來說對稱加密速度要快于非對稱加密。在之后的通訊階段,可以使用對稱加密算法對數據進行加密,秘鑰則是握手階段生成的。確認信息完整未被篡改。 一、 文章概述 互聯網時代,網絡上的數據量每天都在以驚人的速度增長。同時,各類網絡安全問題層出不窮。在信息安全重要性日益凸顯的今天,作為一名開發者,需要加強對安全的認識,并通過技...
摘要:接下來,作者從密碼算法的誤用著手,針對一些常量,改進了靜態分析工具。具體來說,就是在的基礎上做了動態分析方法和靜態分析方法相結合的策略,在線記錄文件,離線檢測分析,使得整個工具更加完善。 ...
摘要:相當于模擬了另一次請求。只會停留在當級下然后找,不會往下再查找對應的的規則或者匹配。臨時重定向會重新向服務器發起請求。 上一篇:基于Nginx的中間件架構(二):代理服務、負載均衡、緩存服務、動靜分離 一、Rewrite規則(常用) showImg(https://segmentfault.com/img/bV42Q7?w=374&h=88); 1.1 regex正則表達式 showI...
摘要:比特幣區塊鏈無疑是當今業界的最熱門的。目前,每個成功的礦工獲得可能每年更換一次或通過比特幣社區決策作為成功向區塊鏈添加一塊交易的獎勵。填寫其他詳細信息,例如比特幣金額和可選說明。 比特幣區塊鏈無疑是當今業界的最熱門的。通過這篇博客,我將盡力向大家介紹加密貨幣比特幣的概念,以及它如何創造我們稱之為區塊鏈的革命性技術。 這個問題經常引起混淆。這篇文章可以快速解釋和清理這方面的混亂! 什么是...
閱讀 1531·2023-04-26 00:25
閱讀 920·2021-09-27 13:36
閱讀 934·2019-08-30 14:14
閱讀 2180·2019-08-29 17:10
閱讀 1015·2019-08-29 15:09
閱讀 1951·2019-08-28 18:21
閱讀 970·2019-08-26 13:27
閱讀 981·2019-08-26 10:58