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

首頁 > 編程 > JavaScript > 正文

Node.js DES加密的簡單實現

2019-11-20 09:32:30
字體:
來源:轉載
供稿:網友

常見的加密算法基本分為這幾類,1 :線性散列算法、2:對稱性加密算法、3、非對稱性加密算法 (記記記)

線性散列算法(簽名算法):MD5,SHA1,HMAC

比如MD5:即Message-Digest Algorithm 5(信息-摘要算法5),用于確保信息傳輸完整一致。

特點:

1、壓縮性:任意長度的數據,算出的MD5值長度都是固定的。
2、容易計算:從原數據計算出MD5值很容易。
3、抗修改性:對原數據進行任何改動,哪怕只修改1個字節,所得到的MD5值都有很大區別。
4、強抗碰撞:已知原數據和其MD5值,想找到一個具有相同MD5值的數據(即偽造數據)是非常困難的。

MD5的作用是讓大容量信息在用數字簽名軟件簽署私人密鑰前被"壓縮"成一種保密的格式(就是把一個任意長度的字節串變換成一定長的十六進制數字串)

對稱性加密算法:AES,DES,3DES

比如AES:(Advanced Encryption Standard)在密碼學中又稱Rijndael加密法,是美國聯邦政府采用的一種區塊加密標準。這個標準用來替代原先的DES,已經被多方分析且廣為全世界所使用。

非對稱性加密算法:RSA,DSA,ECC

比如RSA:RSA公開密鑰密碼體制。所謂的公開密鑰密碼體制就是使用不同的加密密鑰與解密密鑰,是一種“由已知加密密鑰推導出解密密鑰在計算上是不可行的”密碼體制。
在公開密鑰密碼體制中,加密密鑰(即公開密鑰)PK是公開信息,而解密密鑰(即秘密密鑰)SK是需要保密的。加密算法E和解密算法D也都是公開的。雖然解密密鑰SK是由公開密鑰PK決定的,但卻不能根據PK計算出SK。

NodeJS中的Crypto模塊

node利用 OpenSSL庫來實現它的加密技術,這是因為OpenSSL已經是一個廣泛被采用的加密算法。它包括了類似MD5 or SHA-1 算法,這些算法你可以利用在你的應用中。

下面的代碼使用Crypto模塊DES算法的實現方法

/*** * @author chenjianxiang * @date 2016-07-07 */var crypto = require('crypto');var key = '12345670';exports.des = {  algorithm:{ ecb:'des-ecb',cbc:'des-cbc' },  encrypt:function(plaintext,iv){    var key = new Buffer(key);    var iv = new Buffer(iv ? iv : 0);    var cipher = crypto.createCipheriv(this.algorithm.ecb, key, iv);    cipher.setAutoPadding(true) //default true    var ciph = cipher.update(plaintext, 'utf8', 'base64');    ciph += cipher.final('base64');    return ciph;  },  decrypt:function(encrypt_text,iv){    var key = new Buffer(key);    var iv = new Buffer(iv ? iv : 0);    var decipher = crypto.createDecipheriv(this.algorithm.ecb, key, iv);    decipher.setAutoPadding(true);    var txt = decipher.update(encrypt_text, 'base64', 'utf8');    txt += decipher.final('utf8');    return txt;  }};

使用DES加密解密方法

//加密var cryptUtil = require("./utils/crypt");var str = "/upload/image/201602120012.jpg";var encrypt_text = cryptUtil.des.encrypt(str,0);var decrypt_text = cryptUtil.des.decrypt(encrypt_text,0);console.log(encrypt_text);console.log(decrypt_text);

輸出結果:

I+qwOsXQvBq18KVmX3ainoMHbs3nT+v64s

/upload/image/201602120012.jpg

以上這篇Node.js DES加密的簡單實現就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 旺苍县| 仪征市| 南华县| 苏尼特右旗| 满洲里市| 勐海县| 日照市| 固原市| 青岛市| 错那县| 荃湾区| 五常市| 高安市| 涞水县| 永康市| 资中县| 临沭县| 高邑县| 库尔勒市| 延川县| 罗源县| 临夏市| 淮南市| 蒲城县| 乌拉特后旗| 包头市| 婺源县| 龙井市| 子长县| 江门市| 遂平县| 茶陵县| 凤凰县| 志丹县| 中阳县| 汉源县| 平果县| 绍兴市| 威海市| 开远市| 阜新市|