node加密-ag真人国际官网
① 關於nodejs 怎麼實現 crypto des加密
就是加密和解密使用同一個密鑰,通常稱之為「session key 」這種加密技術在當今被廣泛採用,如美國政府所採用的des加密標准就是一種典型的「對稱式」加密法,它的session key長度為56bits。
非對稱式加密:
就是加密和解密所使用的不是同一個密鑰,通常有兩個密鑰,稱為「公鑰」和「私鑰」,它們兩個必需配對使用,否則不能打開加密文件。
加密為系統中經常使用的功能,node自帶強大的加密功能crypto,下面通過簡單的例子進行練習。
1、加密模塊的引用:
var crypto=require('crypto');
var $=require('underscore');var defaults = {
encoding: {
input: 'utf8',
output: 'hex'
},
algorithms: ['bf', 'blowfish', 'aes-128-cbc']
};
默認加密演算法配置項:
輸入數據格式為utf8,輸出格式為hex,
演算法使用bf,blowfish,aes-128-abc三種加密演算法;
2、配置項初始化:
function mixcrypto(options) {
if (typeof options == 'string')
options = { key: options };
options = $.extend({}, defaults, options);
this.key = options.key;
this.inputencoding = options.encoding.input;
this.outputencoding = options.encoding.output;
this.algorithms = options.algorithms;
}
加密演算法可以進行配置,通過配置option進行不同加密演算法及編碼的使用。
3、加密方法代碼如下:
mixcrypto.prototype.encrypt = function (plaintext) {
return $.rece(this.algorithms, function (memo, a) {
var cipher = crypto.createcipher(a, this.key);
return cipher.update(memo, this.inputencoding, this.outputencoding)
cipher.final(this.outputencoding)
}, plaintext, this);
};
使用crypto進行數據的加密處理。
4、解密方法代碼如下:
mixcrypto.prototype.decrypt = function (crypted) {
try {
return $.receright(this.algorithms, function (memo, a) {
var decipher = crypto.createdecipher(a, this.key);
return decipher.update(memo, this.outputencoding, this.inputencoding)
decipher.final(this.inputencoding);
}, crypted, this);
} catch (e) {
return;
}
};