aes.js JS实现 加密 解密

7 篇文章 0 订阅
7 篇文章 0 订阅

 用到的库:aes-js方地址https://github.com/ricmoo/aes-js

 原本在小程序中是计划使用 CryptoJS 的,但是考虑到aes-js也可以满足并且size也小。

//秘钥
var pass = "25bc2e22f4da436422ec6a428bdf4db1";
//秘钥转成字节
var key = aesjs.utils.utf8.toBytes( pass );
//生成一个随机数
var random = Math.random();
//生成一个16位的偏移量
var tmpiv = random.toString(32).slice(-8) + pass.substr(random*18, 8 );
var iv = aesjs.utils.utf8.toBytes( tmpiv );
// 需要加密的内容
var text = 'Text may be any length you wish, no padding is required.';
//把明文转成字节
var textBytes = aesjs.utils.utf8.toBytes(text);
//通过16位的偏移量和密钥转成的字节生成一个对象
var aesOfb = new aesjs.ModeOfOperation.ofb(key, iv);
//通过这个对象把转成字节的明文加密
var encryptedBytes = aesOfb.encrypt(textBytes);
//要打印或存储二进制数据,可以将其转换为十六进制
var encryptedHex = aesjs.utils.hex.fromBytes(encryptedBytes);
console.log(encryptedHex+tmpiv);


//解密
var val = "8fbb126540e8e88fa9d4b150038b840e220194";
var _iv = val.slice(-16);
var _data = val.substr(0,val.length - 16);
var _ivByte = aesjs.utils.utf8.toBytes( _iv );
var aesOfb = new aesjs.ModeOfOperation.ofb(key, _ivByte);
//吧密文16进制转二进制
var _dataByte = aesjs.utils.hex.toBytes( _data );
//二进制转
var _decryptval = aesOfb.decrypt(_dataByte);
var _textBytes = aesjs.utils.utf8.fromBytes(_decryptval);
console.log(_textBytes);

推荐六里桥六里小说网站: http://www.llqll.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时间在飞飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值