基于Node.js的AES加密

文本加密

const crypto = require('crypto');
function aesEncrypt(data,key,iv){
    let cipher = crypto.createCipheriv('aes-128-cbc', key, iv);
  return cipher.update(data, 'utf8', 'hex')+cipher.final('hex');
}
function aesDecrypt(crypted,key,iv){
    let decipher = crypto.createDecipheriv('aes-128-cbc', key, iv);
  return decipher.update(crypted, 'hex', 'utf8')+decipher.final('utf8');
}
let key = '1234567891234567';
let iv = '1234567891234567';
let text = 'hello world';
let enc = aesEncrypt(text,key,iv);
console.log(aesDecrypt(enc,key,iv));

文件加密

const crypto = require('crypto');
const fs = require('fs');
let key = '1234567891234567';
let iv = '1234567891234567';
let path = __dirname+'/files/blockchain-cat.pdf';
let enPath = __dirname+'/encrypt/blockchain-cat.pdf';
let dePath = __dirname+'/decrypt/blockchain-cat.pdf';

function aesEncryptNew(buff,key,iv){
  let cipher = crypto.createCipheriv('aes-128-cbc', key, iv);
  return cipher.update(buff,'','hex')+cipher.final('hex');
}
function aesDecryptNew(buff,key,iv){
  let decipher = crypto.createDecipheriv('aes-128-cbc', key, iv);
  return decipher.update(buff,'','hex')+decipher.final('hex');
}

let buff = fs.readFileSync(path);
let buffEnc = aesEncryptNew(buff,key,iv);
fs.writeFileSync(enPath,new Buffer(buffEnc,'hex'));

hexContent = fs.readFileSync(enPath);
let deHex = aesDecryptNew(hexContent,key,iv);
fs.writeFileSync(dePath,new Buffer(deHex,'hex'));
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值