成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Node.js進(jìn)階:5分鐘入門非對稱加密方法

zhiwei / 2426人閱讀

摘要:非對稱加密的理論知識,可以參考筆者前面的文章進(jìn)階模塊之理論篇。非對稱加密中,公鑰加密,私鑰解密,加解密對應(yīng)的分別如下。相關(guān)鏈接程序猿小卡的學(xué)習(xí)筆記非對稱解密出錯(cuò)

前言

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

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

完整的代碼可以在 《Nodejs學(xué)習(xí)筆記》 找到,也歡迎大家關(guān)注 程序猿小卡的GitHub。

加密、解密方法

在Node.js中,負(fù)責(zé)安全的模塊是crypto。非對稱加密中,公鑰加密,私鑰解密,加解密對應(yīng)的API分別如下。

加密函數(shù):

crypto.publicEncrypt(key, buffer)

解密函數(shù):

crypto.privateDecrypt(privateKey, buffer)
入門例子

假設(shè)有如下utils.js

// utils.js
const crypto = require("crypto");

// 加密方法
exports.encrypt = (data, key) => {
  // 注意,第二個(gè)參數(shù)是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-----
`;
小結(jié)

可以看到,通過Node.js進(jìn)行非對稱加密、解密還是挺方便的。更多用法,可以參考官方文檔。

相關(guān)鏈接

程序猿小卡的GitHub

Nodejs學(xué)習(xí)筆記

非對稱解密出錯(cuò)

https://nodejs.org/api/crypto.html

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/11335.html

相關(guān)文章

  • SSL協(xié)議之?dāng)?shù)據(jù)加密過程詳解

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

    Seay 評論0 收藏0
  • Nodejs進(jìn)階:crypto模塊中你需要掌握的安全基礎(chǔ)知識

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

    xzavier 評論0 收藏0
  • 檢測工具進(jìn)階——結(jié)合靜態(tài)分析的動(dòng)態(tài)分析工具論文分享

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

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

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

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

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

    Kosmos 評論0 收藏0

發(fā)表評論

0條評論

zhiwei

|高級講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<