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 相关文章推荐
删除重复数据的算法
Nov 23 Javascript
jQuery获取注册信息并提示实现代码
Apr 21 Javascript
原生js实现移动开发轮播图、相册滑动特效
Apr 17 Javascript
JavaScript禁止用户多次提交的两种方法
Jul 24 Javascript
微信小程序 wxapp内容组件 progress详细介绍
Oct 31 Javascript
JS中IP地址与整数相互转换的实现代码
Apr 10 Javascript
详解Angular 中 ngOnInit 和 constructor 使用场景
Jun 22 Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
Aug 17 jQuery
JavaScript的setter与getter方法
Nov 29 Javascript
Vue组件化开发思考
Feb 02 Javascript
微信小程序如何引用外部js,外部样式,公共页面模板
Jul 23 Javascript
谈谈node.js中的模块系统
Sep 01 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垃圾代码优化操作代码
2010/08/05 PHP
微盾PHP脚本加密专家php解密算法
2020/09/13 PHP
PHP 防注入函数(格式化数据)
2011/08/08 PHP
PHP开发框架kohana中处理ajax请求的例子
2014/07/14 PHP
JavaScript 联动的无限级封装类,数据采用非Ajax方式,随意添加联动
2010/06/29 Javascript
google jQuery 引用文件,jQuery 引用地址集合(jquery 1.2.6至jquery1.5.2)
2011/04/24 Javascript
jquery构造器的实现代码小结
2011/05/16 Javascript
JAVASCRIPT车架号识别/验证函数代码 汽车车架号验证程序
2012/01/08 Javascript
JS 屏蔽键盘不可用与鼠标右键不可用的方法
2013/11/18 Javascript
理解jquery事件冒泡
2016/01/03 Javascript
BootStrap智能表单实战系列(三)分块表单配置详解
2016/06/13 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐)
2016/06/23 Javascript
jQuery 3.0十大新特性最终版发布
2016/07/14 Javascript
python 生成不重复的随机数的代码
2011/05/15 Python
跟老齐学Python之做一个小游戏
2014/09/28 Python
python动态性强类型用法实例
2015/05/09 Python
深入理解python中的浅拷贝和深拷贝
2016/05/30 Python
Python多线程扫描端口代码示例
2018/02/09 Python
如何用C代码给Python写扩展库(Cython)
2019/05/17 Python
如何基于Python创建目录文件夹
2019/12/31 Python
Python输出指定字符串的方法
2020/02/06 Python
python输出结果刷新及进度条的实现操作
2020/07/13 Python
pycharm专业版远程登录服务器的详细教程
2020/09/15 Python
Spartoo荷兰:鞋子、包包和服装
2018/07/12 全球购物
澳大利亚便宜隐形眼镜购买网站:QUICKLENS Australia
2018/10/06 全球购物
英国的一家创新礼品和小工具零售商:Menkind
2019/08/24 全球购物
UDP协议功能
2013/01/06 面试题
残疾人创业典型事迹
2014/02/01 职场文书
迟到检讨书500字
2014/02/05 职场文书
乡镇纠风工作实施方案
2014/03/22 职场文书
国家奖学金获奖感言
2014/08/16 职场文书
终止劳动合同协议书
2014/10/05 职场文书
2014年小学教研工作总结
2014/12/06 职场文书
商场收银员岗位职责
2015/04/07 职场文书
2015年电话客服工作总结
2015/05/18 职场文书
故意伤害罪辩护词
2015/05/21 职场文书