前端加密(crypto.js的用法)
今天对项目的登陆做优化的时候,为了防暴力破解,要对账号密码等进行加密,后台小哥向我推荐了这个crypto.js,下面总结一下用法。
1.新建一个js文件,封装加密方法
//首先声明两个变量,加密的时候要用到,要和后台沟通,保持一致
const AES_KEY = '0D7FB71E8EC31E97';
const IV = 'TRYTOCN394402133';
function encrypt(params) {
var key = CryptoJS.enc.Utf8.parse(AES_KEY);
var iv = CryptoJS.enc.Utf8.parse(IV);
var jsonData = https://www.it610.com/article/JSON.stringify(params);
//下面的data参数要求是一个字符串,第一次用的时候我直接传递的是一个对象,出现了错误,要转换成字符串
var data = CryptoJS.enc.Utf8.parse(jsonData);
var encrypted = CryptoJS.AES.encrypt(data, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
}).toString();
return encrypted;
}然后就可以使用了,比如要加密的表单是下面的格式:var params = {"txtValid":"1234",
"txtPwd":"admin",
"txtName":"admin",
"timestamp":"123456789"
};
encrypt(params)//YLi/+YY1Ojd14ybMu6j68OZhO4HuDHAkE/iYEtqLly/RS3oIvxjca4IGUp8wM6MaxCj2ju7pMg20OGhWrl+SsIkg1CYR6p29FA2OJJLKNUY=
【前端加密(crypto.js的用法)】解密的话也很简单,用下面的方法:
function decrypt(params) {
//解密
var key = CryptoJS.enc.Utf8.parse(AES_KEY);
var iv = CryptoJS.enc.Utf8.parse(IV);
var decrypt = CryptoJS.AES.decrypt(params, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
}).toString(CryptoJS.enc.Utf8);
return decrypt;
}
然后因为页面的请求可以看到js源码,所以对这个js文件进行了混淆加密,这个很简单,百度一下有很多转换工具。
推荐阅读
- 对称加密和非对称加密的区别
- Android中的AES加密-下
- Jsr303做前端数据校验
- 7、前端--jQuery简介、基本选择器、基本筛选器、属性选择器、表单选择器、筛选器方法、节点操作、绑定事件
- 前端代码|前端代码 返回顶部 backToTop
- iOS|iOS 笔记之_时间戳 + DES 加密
- 前端|web前端dya07--ES6高级语法的转化&render&vue与webpack&export
- 前端自学笔记01
- js保留自定义小数点
- 前端开发|Vue2.x API 学习