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 相关文章推荐
JQuery优缺点分析说明
Apr 10 Javascript
页面调用单个swf文件,嵌套出多个方法。
Nov 21 Javascript
jquery淡化版banner异步图片文字效果切换图片特效
Apr 08 Javascript
Jquery Post处理后不进入回调的原因及解决方法
Jul 15 Javascript
基于jquery实现的可编辑下拉框实现代码
Aug 02 Javascript
原生js实现水平方向无缝滚动
Jan 10 Javascript
微信小程序 实例开发总结
Apr 26 Javascript
关于jQuery库冲突的完美解决办法
May 20 jQuery
Vue开发之watch监听数组、对象、变量操作分析
Apr 25 Javascript
深入理解 JS 垃圾回收
Jun 03 Javascript
实用Javascript调试技巧分享(小结)
Jun 18 Javascript
JS中作用域以及变量范围分析
Jul 18 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 header()函数语法及使用代码
2013/11/04 PHP
PHP附件下载中文名称乱码的解决方法
2015/12/17 PHP
在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
2016/04/04 PHP
PHPExcel 修改已存在Excel的方法
2018/05/03 PHP
php设计模式之单例模式用法经典示例分析
2019/09/20 PHP
laravel通用化的CURD的实现
2019/12/13 PHP
jquery连缀语法如何实现
2012/11/29 Javascript
JQuery AJAX 中文乱码问题解决
2013/06/05 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
2015/12/14 Javascript
ionic 上拉菜单(ActionSheet)实例代码
2016/06/06 Javascript
js图片上传前预览功能(兼容所有浏览器)
2016/08/24 Javascript
web 屏蔽BackSpace键实例代码
2016/12/24 Javascript
javascript实现右下角广告框效果
2017/02/01 Javascript
jQuery实现字符串全部替换的方法【推荐】
2017/03/09 Javascript
javascript将list转换成树状结构的实例
2017/09/08 Javascript
webpack.DefinePlugin与cross-env区别详解
2020/02/23 Javascript
小程序实现密码输入框
2020/11/16 Javascript
[01:08:29]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第一场 1月9日
2021/03/11 DOTA
Python+Wordpress制作小说站
2017/04/14 Python
使用Python正则表达式操作文本数据的方法
2019/05/14 Python
Python使用pyautocad+openpyxl处理cad文件示例
2019/07/11 Python
Python提取PDF内容的方法(文本、图像、线条等)
2019/09/25 Python
解决Python列表字符不区分大小写的问题
2019/12/19 Python
CentOS7下安装python3.6.8的教程详解
2020/01/03 Python
Django实现celery定时任务过程解析
2020/04/21 Python
Numpy实现卷积神经网络(CNN)的示例
2020/10/09 Python
matplotlib bar()实现多组数据并列柱状图通用简便创建方法
2021/02/24 Python
教师自荐书
2013/10/08 职场文书
二手书店创业计划书
2014/01/16 职场文书
党员教师个人对照检查材料(群众路线)
2014/09/26 职场文书
党支部创先争优公开承诺书
2015/04/30 职场文书
责任书范本大全
2015/05/11 职场文书
民事诉讼答辩状范文
2015/05/21 职场文书
2016师德师风学习心得体会
2016/01/12 职场文书
经典人生语录分享:不畏将来,不念过去,笑对当下
2019/12/12 职场文书
Java GUI编程菜单组件实例详解
2022/04/07 Java/Android