国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Node.js進階:5分鐘入門非對稱加密方法

zhiwei / 2424人閱讀

摘要:非對稱加密的理論知識,可以參考筆者前面的文章進階模塊之理論篇。非對稱加密中,公鑰加密,私鑰解密,加解密對應的分別如下。相關鏈接程序猿小卡的學習筆記非對稱解密出錯

前言

剛回答了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協議之數據加密過程詳解

    摘要:前言總括原文博客地址協議之數據加密過程詳解知乎專欄簡書專題前端進擊者知乎前端進擊者簡書博主博客地址的個人博客生活只要你聽過,不可能沒聽過協議吧,協議是一種安全協議。 前言 總括: 原文博客地址:SSL協議之數據加密過程詳解 知乎專欄&&簡書專題:前端進擊者(知乎)&&前端進擊者(簡書) 博主博客地址:Damonare的個人博客 生活 SSL 只要你聽過HTTPS,不可能沒聽過...

    Seay 評論0 收藏0
  • Nodejs進階:crypto模塊中你需要掌握的安全基礎知識

    摘要:加解密偽代碼加密解密非對稱加密又稱公開秘鑰加密。常見的非對稱加密算法。通常來說對稱加密速度要快于非對稱加密。在之后的通訊階段,可以使用對稱加密算法對數據進行加密,秘鑰則是握手階段生成的。確認信息完整未被篡改。 一、 文章概述 互聯網時代,網絡上的數據量每天都在以驚人的速度增長。同時,各類網絡安全問題層出不窮。在信息安全重要性日益凸顯的今天,作為一名開發者,需要加強對安全的認識,并通過技...

    xzavier 評論0 收藏0
  • 檢測工具進階——結合靜態分析的動態分析工具論文分享

    摘要:接下來,作者從密碼算法的誤用著手,針對一些常量,改進了靜態分析工具。具體來說,就是在的基礎上做了動態分析方法和靜態分析方法相結合的策略,在線記錄文件,離線檢測分析,使得整個工具更加完善。 ...

    canger 評論0 收藏0
  • 基于Nginx的中間件架構(三):Rewrite規則、secure_link和Geoip讀取地域信息

    摘要:相當于模擬了另一次請求。只會停留在當級下然后找,不會往下再查找對應的的規則或者匹配。臨時重定向會重新向服務器發起請求。 上一篇:基于Nginx的中間件架構(二):代理服務、負載均衡、緩存服務、動靜分離 一、Rewrite規則(常用) showImg(https://segmentfault.com/img/bV42Q7?w=374&h=88); 1.1 regex正則表達式 showI...

    awokezhou 評論0 收藏0
  • 如何理解比特幣和區塊鏈?

    摘要:比特幣區塊鏈無疑是當今業界的最熱門的。目前,每個成功的礦工獲得可能每年更換一次或通過比特幣社區決策作為成功向區塊鏈添加一塊交易的獎勵。填寫其他詳細信息,例如比特幣金額和可選說明。 比特幣區塊鏈無疑是當今業界的最熱門的。通過這篇博客,我將盡力向大家介紹加密貨幣比特幣的概念,以及它如何創造我們稱之為區塊鏈的革命性技術。 這個問題經常引起混淆。這篇文章可以快速解釋和清理這方面的混亂! 什么是...

    Kosmos 評論0 收藏0

發表評論

0條評論

zhiwei

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<