vue项目中使用AES实现密码加密解密(ECB和CBC两种模式)


Posted in Javascript onAugust 12, 2019

vue项目中使用AES实现密码加密解密

区别

ECB:是一种基础的加密方式,密文被分割成分组长度相等的块(不足补齐),然后单独一个个加密,一个个输出组成密文。

CBC:是一种循环模式,前一个分组的密文和当前分组的明文异或或操作后再加密,这样做的目的是增强破解难度。(不容易主动攻击,安全性好于ECB,是SSL、IPSec的标准)

代码实现

先安装 crypto-js

npm install crypto-js --save-dev

ECB模式:

import CryptoJS from "crypto-js";

export default {
 // 加密
 encrypt(word, keyStr) {
 keyStr = keyStr ? keyStr : "absoietlj32fai12";
 let key = CryptoJS.enc.Utf8.parse(keyStr);
 let srcs = CryptoJS.enc.Utf8.parse(word);
 let encrypted = CryptoJS.AES.encrypt(srcs, key, {
 mode: CryptoJS.mode.ECB,
 padding: CryptoJS.pad.Pkcs7
 });
 return encrypted.toString();
 },
 // 解密
 decrypt(word, keyStr) {
 keyStr = keyStr ? keyStr : "absoietlj32fai12";
 var key = CryptoJS.enc.Utf8.parse(keyStr);
 var decrypt = CryptoJS.AES.decrypt(word, key, {
 mode: CryptoJS.mode.ECB,
 padding: CryptoJS.pad.Pkcs7
 });
 return CryptoJS.enc.Utf8.stringify(decrypt).toString();
 }
};

CBC模式:

import CryptoJS from "crypto-js";

export default {
 // 加密
 encrypt(word, keyStr, ivStr) {
 keyStr = keyStr ? keyStr : "absoietlj32fai12";
 ivStr = ivStr ? ivStr : "absoietlj32fai12";
 let key = CryptoJS.enc.Utf8.parse(keyStr);
 let iv = CryptoJS.enc.Utf8.parse(ivStr);
 let srcs = CryptoJS.enc.Utf8.parse(word);

 let encrypted = CryptoJS.AES.encrypt(srcs, key, {
 iv,
 mode: CryptoJS.mode.CBC,
 padding: CryptoJS.pad.ZeroPadding
 });
 return encrypted.toString();
 },
 // 解密
 decrypt(word, keyStr, ivStr) {
 keyStr = keyStr ? keyStr : "absoietlj32fai12";
 ivStr = ivStr ? ivStr : "absoietlj32fai12";
 var key = CryptoJS.enc.Utf8.parse(keyStr);
 let iv = CryptoJS.enc.Utf8.parse(ivStr);

 var decrypt = CryptoJS.AES.decrypt(word, key, {
 iv,
 mode: CryptoJS.mode.CBC,
 padding: CryptoJS.pad.ZeroPadding
 });
 return decrypt.toString(CryptoJS.enc.Utf8);
 }
};

以上两种模式中的 keyStr 的长度要不小于14位,否则解密时会显示空白

总结

以上所述是小编给大家介绍的vue项目中使用AES实现密码加密解密(ECB和CBC两种模式),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
超级简单的图片防盗(HTML),好用
Apr 08 Javascript
JavaScript 基础篇之运算符、语句(二)
Apr 07 Javascript
JavaScript splice()方法详解
Sep 22 Javascript
js获取视频时长代码
Apr 10 Javascript
jquery实现点击查看更多内容控制段落文字展开折叠效果
Aug 06 Javascript
jQuery实现简单的图片查看器
Sep 11 Javascript
详解基于vue的移动web app页面缓存解决方案
Aug 03 Javascript
详解JS数组Reduce()方法详解及高级技巧
Aug 18 Javascript
vue判断input输入内容全是空格的方法
Mar 02 Javascript
js中数组常用方法总结(推荐)
Apr 09 Javascript
微信小程序按钮点击跳转页面详解
May 06 Javascript
二维码条形码生成的JavaScript脚本库
Jul 07 Javascript
详解json串反转义(消除反斜杠)
Aug 12 #Javascript
json 带斜杠时如何解析的实现
Aug 12 #Javascript
electron实现静默打印的示例代码
Aug 12 #Javascript
微信小程序 弹窗输入组件的实现解析
Aug 12 #Javascript
微信小程序 腾讯地图SDK 获取当前地址实现解析
Aug 12 #Javascript
ElementUI radio组件选中小改造
Aug 12 #Javascript
Vue 3.0 前瞻Vue Function API新特性体验
Aug 12 #Javascript
You might like
PHP 超链接 抓取实现代码
2009/06/29 PHP
一个简单的网页密码登陆php代码
2012/07/17 PHP
win7下memCache的安装过程(具体操作步骤)
2013/06/28 PHP
PHP版本升级到7.x后wordpress的一些修改及wordpress技巧
2015/12/25 PHP
php修改数组键名的方法示例
2017/04/15 PHP
JQuery 学习笔记 选择器之二
2009/07/23 Javascript
jquery 实现表单验证功能代码(简洁)
2012/07/03 Javascript
JS实现根据出生年月计算年龄
2014/01/10 Javascript
在Firefox下js select标签点击无法弹出
2014/03/06 Javascript
探索angularjs+requirejs全面实现按需加载的套路
2016/02/26 Javascript
picLazyLoad 实现图片延时加载(包含背景图片)
2016/07/21 Javascript
浅谈js常用内置方法和对象
2016/09/24 Javascript
微信小程序开发之Tabbar实例详解
2017/01/09 Javascript
vue中v-cloak解决刷新或者加载出现闪烁问题(显示变量)
2018/04/20 Javascript
深入浅析Vue.js 中的 v-for 列表渲染指令
2018/11/19 Javascript
使用puppeteer爬取网站并抓出404无效链接
2018/12/20 Javascript
Vue路由前后端设计总结
2019/08/06 Javascript
JavaScript计算正方形面积
2019/11/26 Javascript
Vue Object.defineProperty及ProxyVue实现双向数据绑定
2020/09/02 Javascript
python获取指定路径下所有指定后缀文件的方法
2015/05/26 Python
浅析python 中大括号中括号小括号的区分
2019/07/29 Python
CSS3的Border-radius轻松制作圆角
2012/12/24 HTML / CSS
英国排名第一的在线宠物用品商店:Monster Pet Supplies
2018/05/20 全球购物
美国购买体育赛事门票网站:TicketCity
2019/03/06 全球购物
abstract class和interface有什么区别?
2012/01/03 面试题
初中音乐教学反思
2014/01/12 职场文书
2014年计算机专业个人自我评价
2014/01/19 职场文书
学生会干部自荐信
2014/02/04 职场文书
高一新生军训方案
2014/05/12 职场文书
英语教育专业毕业生求职信
2014/08/28 职场文书
五五普法心得体会
2014/09/04 职场文书
买房协议书范本
2014/10/23 职场文书
教师工作总结范文2014
2014/11/10 职场文书
课程设计感想范文
2015/08/11 职场文书
公司借款担保书
2015/09/22 职场文书
Java面试题冲刺第十八天--Spring框架3
2021/08/07 面试题