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 相关文章推荐
用js实现手把手教你月入万刀(转贴)
Nov 07 Javascript
JavaScript判断文件上传类型的方法
Sep 02 Javascript
JavaScript使用循环和分割来替换和删除元素实例
Oct 13 Javascript
jquery实现的仿天猫侧导航tab切换效果
Aug 24 Javascript
jQuery实现两款有动画功能的导航菜单代码
Sep 16 Javascript
JS学习之表格的排序简单实例
May 16 Javascript
浅谈jquery拼接字符串效率比较高的方法
Feb 22 Javascript
vue实现可视化可拖放的自定义表单的示例代码
Mar 20 Javascript
vue源码中的检测方法的实现
Sep 26 Javascript
初学vue出现空格警告的原因及其解决方案
Oct 31 Javascript
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
Nov 07 jQuery
Vue快速实现通用表单验证的示例代码
Jan 09 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爆绝对路径方法收集整理
2012/09/17 PHP
php实现自动获取生成文章主题关键词功能的深入分析
2013/06/03 PHP
PHP集成百度Ueditor 1.4.3
2014/11/23 PHP
php导入模块文件分享
2015/03/17 PHP
Thinkphp5.0自动生成模块及目录的方法详解
2017/04/17 PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
2017/07/03 PHP
如何在PHP环境中使用ProtoBuf数据格式
2020/06/19 PHP
ExtJs 表单提交登陆实现代码
2010/08/19 Javascript
jQuery中的read和JavaScript中的onload函数的区别
2014/08/27 Javascript
javascript面向对象程序设计(一)
2015/01/29 Javascript
jQuery Validate 数组 全部验证问题
2017/01/12 Javascript
bootstrap组件之导航组件使用方法
2017/01/19 Javascript
JavaScript中无法通过div.style.left获取值的解决方法
2017/02/19 Javascript
解决js ajax同步请求造成浏览器假死的问题
2018/01/18 Javascript
React Native悬浮按钮组件的示例代码
2018/04/05 Javascript
JavaScript设计模式之原型模式分析【ES5与ES6】
2018/07/26 Javascript
详解在vue-cli中使用graphql即vue-apollo的用法
2018/09/08 Javascript
vue组件添加事件@click.native操作
2020/10/30 Javascript
Python中捕捉详细异常信息的代码示例
2014/09/18 Python
Python中实现常量(Const)功能
2015/01/28 Python
在Apache服务器上同时运行多个Django程序的方法
2015/07/22 Python
Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
2016/05/28 Python
Python导入模块时遇到的错误分析
2017/08/30 Python
Python的SimpleHTTPServer模块用处及使用方法简介
2018/01/22 Python
django 发送手机验证码的示例代码
2018/04/25 Python
python-sys.stdout作为默认函数参数的实现
2020/02/21 Python
CSS3 :default伪类选择器使用简介
2018/03/15 HTML / CSS
英国家喻户晓的高街品牌:River Island
2017/11/28 全球购物
Hobbs官方网站:英国奢华女性时尚服装
2020/02/22 全球购物
幼儿教师自我鉴定
2013/11/02 职场文书
保密普查工作实施方案
2014/02/25 职场文书
体育专业求职信
2014/07/16 职场文书
幼儿园见习报告
2014/10/30 职场文书
幼儿教师个人总结
2015/02/05 职场文书
自主招生学校推荐信范文
2015/03/26 职场文书
《春酒》教学反思
2016/02/22 职场文书