1.RSA加密
非對(duì)稱性加密算法:RSA,DSA,ECC
比如RSA:RSA公開密鑰密碼體制忿偷。所謂的公開密鑰密碼體制就是使用不同的加密密鑰與解密密鑰唉匾,是一種“由已知加密密鑰推導(dǎo)出解密密鑰在計(jì)算上是不可行的”密碼體制讥蔽。
在公開密鑰密碼體制中析恋,加密密鑰(即公開密鑰)PK是公開信息,而解密密鑰(即秘密密鑰)SK是需要保密的锹引。加密算法E和解密算法D也都是公開的矗钟。雖然解密密鑰SK是由公開密鑰PK決定的,但卻不能根據(jù)PK計(jì)算出SK嫌变。
var crypto = require("crypto");var constants = require("constants");
//加密
var encrypt = function(data,publickey){ try{ var encrypt = crypto.publicEncrypt({key:publickey,padding:constants.RSA_PKCS1_PADDING},new Buffer(data)); return encrypt.toString("base64"); } catch(e){ return }};
//解密
var decrypt = function(data,privateKey){
try{
var decrypt = crypto.privateDecrypt({key:privateKey,padding:constants.RSA_PKCS1_PADDING},new Buffer(data,'base64'));
return decrypt.toString();
}
catch(e){
return
}
};
2.DES加密
- DES加密介紹 DES是一種對(duì)稱加密算法吨艇,所謂對(duì)稱加密算法即:加密和解密使用相同密鑰的算法。DES加密算法出自IBM的研究腾啥,
- 后來(lái)被美國(guó)政府正式采用东涡,之后開始廣泛流傳,但是近些年使用越來(lái)越少倘待,因?yàn)镈ES使用56位密鑰疮跑,以現(xiàn)代計(jì)算能力,
- 24小時(shí)內(nèi)即可被破解凸舵。雖然如此祖娘,在某些簡(jiǎn)單應(yīng)用中,我們還是可以使用DES加密算法啊奄,本文簡(jiǎn)單講解DES的JAVA實(shí)現(xiàn) 渐苏。
- 注意:DES加密和解密過(guò)程中掀潮,密鑰長(zhǎng)度都必須是8的倍數(shù)
*/
var crypto = require('crypto');
var key = '12345670';
exports.des = {
algorithm:{ ecb:'des-ecb',cbc:'des-cbc' },
encrypt:function(plaintext,iv){
var key1 = new Buffer(key);
var iv = new Buffer(iv ? iv : 0);
var cipher = crypto.createCipheriv(this.algorithm.ecb, key1, 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 key1 = new Buffer(key);
var iv = new Buffer(iv ? iv : 0);
var decipher = crypto.createDecipheriv(this.algorithm.ecb, key1, iv);
decipher.setAutoPadding(true);
var txt = decipher.update(encrypt_text, 'base64', 'utf8');
txt += decipher.final('utf8');
return txt;
}
};
但是對(duì)于 DES 加密