var crypto = require("crypto");
/**
* 作 用 :aes 加密->base64 加密->urldecode 加密
* @param :string data 加密的内容 string key 密钥 iv 补充码 默认为空
* @return:string string 密文
*/
exports.encryption = function(data,key,iv){
iv = iv || "";
var clearEncoding = "utf8";
var cipherEncoding = 'hex';
var cipher = crypto.createCipheriv("aes-256-ecb", key, iv);
cipher.setAutoPadding(true);
var ciphers = cipher.update(data,clearEncoding,cipherEncoding);
ciphers += cipher.final(cipherEncoding);
//var _js = Buffer.from(_jms, "hex").toString("base64");//高版本使用
var _js=new Buffer(ciphers,cipherEncoding).toString("base64");//base64 加密
return encodeURIComponent(_js);//urlencode
}
/**
* @param :string data 解密的内容 string key 密钥 iv 补充码 默认为空
* @return:string string 密文
*/
exports.decryption = function (data, key, iv) {
if (!data) {
return "";
}
iv = iv || "";
var clearEncoding = 'utf8';
var cipherEncoding = 'base64';
var decipher = decodeURIComponent(data);
var decipher_base = new Buffer(decipher, 'base64')
var decipher_base = decipher_base.toString('hex');
var decipher_aes = crypto.createDecipheriv('aes-256-ecb', key, iv);
decipher_aes.setAutoPadding(true);
decipher_aes.update(decipher_base, "hex", "utf8");
return decipher_aes.final("utf8");
}
/**
* 作 用 :base64 加密->urlencode
* @param :array data 加密的内容 string key 密钥
* @return:string data 密文
*/
exports.base64encry = function(data,key){
var str = data.join(key);
var cipher = new Buffer(str);
var base64 = cipher.toString('base64');
return encodeURIComponent(base64);
}
/**
* 作 用 :urldecode 解密 ->base64 解密
* @param :string data 解密的内容 string key 密钥
* @return:array data 密文
*/
exports.base64decry = function(data,key){
var urlde = decodeURIComponent(data);
var decipher = new Buffer(urlde, 'base64')
var decipher_str = decipher.toString();
return decipher_str.split(key);
}
/**
* 作 用 :生成用户的唯一标识
* @param :string text 要加密的字符对象
* @return:string data 时间格式
*/
exports.usersign = function(text){
var buf = crypto.randomBytes(16);
var SecrectKey = buf.toString('hex');//密钥加密;
textjson.secrectkey=SecrectKey;
var Signture = crypto.createHmac('sha1', SecrectKey);//定义加密方式
Signture.update(text);
var miwen=Signture.digest().toString('base64');//生成的密文后将再次作为明文再通过pbkdf2算法迭代加密;
return miwen;
}
node加密解密
最新推荐文章于 2022-11-03 12:15:26 发布