各类加密

1.RSA加密

非对称性加密算法:RSA,DSA,ECC
比如RSA:RSA公开密钥密码体制。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。
在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出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是一种对称加密算法,所谓对称加密算法即:加密和解密使用相同密钥的算法。DES加密算法出自IBM的研究,
  • 后来被美国政府正式采用,之后开始广泛流传,但是近些年使用越来越少,因为DES使用56位密钥,以现代计算能力,
  • 24小时内即可被破解。虽然如此,在某些简单应用中,我们还是可以使用DES加密算法,本文简单讲解DES的JAVA实现 。
  • 注意:DES加密和解密过程中,密钥长度都必须是8的倍数
    */

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;
}

};

但是对于 DES 加密

你可能感兴趣的:(各类加密)