亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

node.js之基礎加密算法模塊crypto詳解

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

crypto作為nodeJS已經穩定下來的模塊在整個node中具有舉足輕重的地位,一切app都需要加密解密,那么crypto就是一個提供加密功能的模塊。在這個模塊中已經打包了OpenSSL hash, HMAC(哈希信息驗證碼),cipher(加密),decipher(解密),sign(簽名)以及verify(驗證)的功能。

加密算法crypto

我很難想象在php里面md5加密只是三個字符的一個方法而已,在node.js中沒封裝前竟然那么長?。?/p>

無法反編譯的加密方式

話不多說直接上代碼品鑒吧

onst crypto = require('crypto');function l(param) {  console.log(param);}const md5 = crypto.createHash('md5');//創建一個md5 hash算法md5.update('aa');//添加要轉化的值md5.update('cc');//與前面的要轉化的值進行拼接l(md5.digest('hex'));//打印16進制的密文,const sha1 = crypto.createHash('sha1');//創建一個sh1 hash算法sha1.update('bbbb');l(sha1.digest('hex'));const hmac = crypto.createHmac('md5', 'key');//創建一個帶秘鑰的sha1或者md5算法hmac.update('aacc');l(hmac.digest('hex'));

最后的輸出為 

aa794f68b4f6ae5e590e9ed34e94d639 
8aed1322e5450badb078e1fb60a817a1df25a2ca 
b03d8471e2c5f212289c3e2dcb95bd47 

真真的輸出了一堆16進制的字符但是簡單生成個密文看來是很麻煩了。 

一般用于密碼的存儲和登錄注冊之類的業務

可以反編譯的加密算法

//AES 對稱加密算法的一種。//創建加密算法function aesEncode(data, key) {  const cipher = crypto.createCipher('aes192', key);  var crypted = cipher.update(data, 'utf8', 'hex');  crypted += cipher.final('hex');  return crypted;}//創建解密算法function aesDecode(encrypted, key) {  const decipher = crypto.createDecipher('aes192', key);  var decrypted = decipher.update(encrypted, 'hex', 'utf8');  decrypted += decipher.final('utf8');  return decrypted;}var data = '我是一個大傻瓜';var key = 'keykey';l(aesEncode(data, key));l(data);l(aesDecode(aesEncode(data, key), key));

最終輸出 

3094e920cf4208e9cf1b209d4be9a2f018541c70db89b4e4fdcf3bda12d3abc7 
我是一個大傻瓜 
我是一個大傻瓜 

這個的話感覺可以用于一般的密文通信。

DH協商秘鑰算法

在http下真叫別人抓包了,所有的信息就泄露了,就算是你用密文通信,開始需要個key來解碼呀,這個key不可能用意念傳輸還是需要來通過網絡傳輸才行,所以還是又被黑的可能性,于是乎就產生了一個神奇的秘鑰算法,兩臺機器之間只需要傳遞幾個值便可以相互知道最終的秘鑰,而就算是這些傳遞的值被抓走了,也無法破譯最終秘鑰因為關鍵的幾個值只存儲于終端上不在傳輸流通。 

好了上代碼

//DH算法協商秘鑰/** * 主動方使用的協商方法 * @returns array():say是要傳達給被動方的三個數據 one是自己要用的一個數據 */function dhOneSay() {  var one = crypto.createDiffieHellman(512);  var one_key = one.generateKeys();  var prime = one.getPrime();  var generator = one.getGenerator();  var say = {    prime: prime, generator: generator, one_key: one_key  };  return [say, one];}/** * 被動方使用的協商方法已經可以得到秘鑰 * @param {prime: prime, generator: generoter, one_key: one_key} props  * @returns array() two_key是要返回給主動方的秘數,theSecret是計算出來的秘鑰 */function dhTwoGetSay(props) {  var two = crypto.createDiffieHellman(props.prime, props.generator);  var two_key = two.generateKeys();  var theSecret = (two.computeSecret(props.one_key)).toString('hex');  return [ two_key, theSecret ];}/** * 主動方收到被動方給予的秘鑰后 * @param str two_key 被動方返回的密數 * @param str one 主動方最初的隨機數 * @returns str 計算出來的秘鑰 */function dhOneGet(two_key,one){return (one.computeSecret(two_key)).toString('hex');}//主動方自己產生數據var oneSay=dhOneSay();//被動方接受主動方傳過來的數據進行計算,產生握手數據和最終的秘鑰var twoGetSay=dhTwoGetSay(oneSay[0]);//主動方接收到被動方傳來的數據進行計算得到最終秘鑰var oneSecret=dhOneGet(twoGetSay[0],oneSay[1]);//被動方的秘鑰早已產生了直接讀取var twoSecret=twoGetSay[1];l(oneSay);l(twoGetSay);l(oneSecret);l(twoSecret);

最終結果是

[ { prime: <Buffer ca 7c 9c 21 0d 90 68 4e 69 0b 49 c0 77 0c 4e aa de 92 91 a7 ac 50 17 a4 c2 26 1c 9f a2 32 e0 8c 76 88 de d6 f0 83 5c cd f7 eb 3a 8a 51 49 70 11 93 d3 ... >,
    generator: <Buffer 02>,
    one_key: <Buffer 20 75 74 5d 50 6b 32 59 19 68 87 36 a3 0e 6e a8 6b db 2f c5 48 5d 21 9c 35 3b 3d ce 15 fe b0 65 2d ea e0 b3 49 80 34 33 f5 f9 c4 5b 77 bd bb f9 fe 31 ... > },
  DiffieHellman { _handle: { verifyError: 0 }, verifyError: 0 } ]
[ <Buffer 47 46 86 88 b9 49 5f 6e 52 2a 26 9b c7 ce 5b d3 17 23 fa fa 6c 6d d1 9a 73 aa 8a e7 1a 16 7b 78 d5 40 85 00 da 29 8b 52 0e d5 a4 cb 37 72 49 e5 c5 26 ... >,
  '91de86d30fae396603a64ef3f38f24f82d7d505c5f546f6c6ef2d14d7e77c2511744d76f8b26ff15d2870090620cd7339987806cc0b8519f39eb7b1fa63a0e7b' ]
91de86d30fae396603a64ef3f38f24f82d7d505c5f546f6c6ef2d14d7e77c2511744d76f8b26ff15d2870090620cd7339987806cc0b8519f39eb7b1fa63a0e7b
91de86d30fae396603a64ef3f38f24f82d7d505c5f546f6c6ef2d14d7e77c2511744d76f8b26ff15d2870090620cd7339987806cc0b8519f39eb7b1fa63a0e7b

便可以發現最后兩個秘鑰的值是完全一樣的(每次運行所產生的秘鑰都是不同的,只要秘鑰相同便說明對應得上),這樣為了強化數據交互的安全性每次進行重要數據傳輸之前就可以先進行一次協商秘鑰過程(可以協商完保存起來也可以每次都協商一遍),然后把協商出來的秘鑰取固定位數為key進行aes加密解密就會安全多了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩一二三在线视频播| 色与欲影视天天看综合网| 中文字幕av一区二区三区谷原希美| 久久久久久久久国产| 久久亚洲精品一区二区| 欧美日韩综合视频| 国产国语刺激对白av不卡| 精品久久久香蕉免费精品视频| 亚洲精品国产品国语在线| 97视频在线观看播放| 97精品视频在线| 亚洲第一精品久久忘忧草社区| 国产欧美精品一区二区三区-老狼| 国产精品久久久久免费a∨| 91国内免费在线视频| 日韩精品视频在线免费观看| 国产精品视频yy9099| 亚洲欧美在线免费观看| 欧美日韩亚洲激情| 亚洲视频欧美视频| 大伊人狠狠躁夜夜躁av一区| 自拍偷拍亚洲精品| 一区二区av在线| 国产精品观看在线亚洲人成网| 国产午夜精品久久久| 中文在线资源观看视频网站免费不卡| 国产精品视频26uuu| 国产精品尤物福利片在线观看| 日韩禁在线播放| 中文亚洲视频在线| 国产精品高清在线观看| 亚洲乱码国产乱码精品精| 亚洲精品自拍偷拍| 91视频国产高清| 亚洲欧美国产另类| 日韩激情视频在线| 亚洲国产成人精品一区二区| 中文字幕免费国产精品| 久久久亚洲精品视频| 国产日韩精品在线观看| 精品二区三区线观看| 秋霞成人午夜鲁丝一区二区三区| 欧美日韩国产色视频| 欧美日韩在线视频观看| 78色国产精品| 91精品国产综合久久香蕉922| 欧美午夜影院在线视频| zzijzzij亚洲日本成熟少妇| 亚洲人午夜色婷婷| 亚洲最大福利网站| 久久视频在线观看免费| 人妖精品videosex性欧美| 国产精品福利在线观看网址| 日韩一级黄色av| 国产a级全部精品| 国产精品视频一区二区高潮| 日韩精品极品在线观看| 久久久伊人欧美| 亚洲香蕉av在线一区二区三区| 69视频在线免费观看| 操91在线视频| 日韩精品中文字幕有码专区| 最近2019好看的中文字幕免费| 欧美激情二区三区| 欧美性69xxxx肥| 亚洲人高潮女人毛茸茸| 亚洲福利视频专区| 久久精品国产免费观看| 国产精品精品一区二区三区午夜版| 久久国产精品久久精品| 国产精品福利无圣光在线一区| 欧美日韩亚洲成人| 国产精品99蜜臀久久不卡二区| 91精品国产高清自在线看超| 不卡在线观看电视剧完整版| 九九热精品视频在线播放| 国产欧亚日韩视频| 亚洲一区二区三| 伊人久久大香线蕉av一区二区| 欧美日韩精品在线播放| 九九热精品视频在线播放| 久久99精品久久久久久噜噜| 国产精品免费一区| 91精品视频免费观看| 国产精品成久久久久三级| 亚洲国产天堂网精品网站| 搡老女人一区二区三区视频tv| 5252色成人免费视频| 日韩免费看的电影电视剧大全| 最好看的2019的中文字幕视频| 96国产粉嫩美女| 国产午夜精品全部视频播放| 超在线视频97| 亚洲老司机av| 欧美精品www| 欧美精品aaa| 精品国产一区二区三区久久狼黑人| 国产精品一久久香蕉国产线看观看| 国产成人激情小视频| 欧美激情高清视频| 人人做人人澡人人爽欧美| 欧美另类精品xxxx孕妇| 久久精品国产清自在天天线| 久久伊人色综合| 日韩精品在线观看网站| 精品一区二区电影| 91性高湖久久久久久久久_久久99| 97涩涩爰在线观看亚洲| 亚洲国产高清福利视频| 欧美中文字幕第一页| 久久精品国产一区二区三区| 狠狠久久五月精品中文字幕| 亚洲精品一区二区三区不| 欧美一级在线播放| 国产精品一区二区久久精品| 亚洲欧美中文日韩v在线观看| 亚洲大胆人体在线| 日韩理论片久久| 日韩欧美aaa| 日韩有码在线观看| 精品国产精品三级精品av网址| 国产中文字幕亚洲| 浅井舞香一区二区| 全色精品综合影院| 日韩中文字幕精品| 日韩中文字幕视频| 在线观看精品国产视频| 国产成人久久久| 亚洲新声在线观看| 欧美性极品xxxx娇小| 亚洲美女黄色片| 欧美另类在线观看| 日韩av观看网址| 久久久av亚洲男天堂| 国产日韩专区在线| 青青久久av北条麻妃黑人| 欧美自拍视频在线| 国产精品影院在线观看| 欧美性69xxxx肥| 欧美成人自拍视频| 欧美精品久久一区二区| 亚洲成人av在线| 国产精品成人v| 国产精品女主播| 中文字幕亚洲精品| 国产91精品久久久久久| 成人久久一区二区三区| 国产精品美女免费视频| 国内精品久久久久久久久| 欧美性猛交xxxx乱大交蜜桃| 日韩精品在线视频| 97视频在线观看播放| 国产福利精品av综合导导航| 国内精品久久久| 久久精品国亚洲| 欧美在线影院在线视频| 国产福利成人在线| 国产视频在线一区二区| 欧美黑人视频一区| 国产91热爆ts人妖在线| 亚洲国产精品久久91精品| 久久久精品一区| yw.139尤物在线精品视频| 国产精品久久不能|