前言:我们在数据传输、存储数据、身份验证和授权、API通信、隐私保护时,有时候会用到AES(Advanced Encryption Standard,高级加密标准)进行数据的加密和解密工具。这里我们利用CryptoJS、来实现AES加密和解密,记录一下
![](https://i-blog.csdnimg.cn/blog_migrate/087ade7ca076482b059ea66110f248f6.png)
Vue.js ~ 第 17 篇 —— Vue使用AES加密和解密
一. 首先安装 crypto-js插件,安装命令如下
npm install crypto-js -S
// 或者
cnpm install crypto-js -S
1. 含义
-S等同于--save,保存在package.json文件中,是在dependencies 下,
--save安装包信息将加入到dependencies(生产环境)中,生产阶段的依赖,也就是项目运行时的依赖,就是程序上线后仍然需要依赖;
-D等同于--save-dev,也保存在package.json文件中,是在devDependencies下,
--save-dev 安装包信息将加入到devDependencies(开发环境)中,开发阶段的依赖,就是我们在开发过程中需要的依赖,只在开发阶段起作用。
2. 详见,请看
--save,--save-dev,--global各自的含义
https://blog.csdn.net/weixin_65793170/article/details/128267888?ops_request_misc=&request_id=5443803715234ac993eeceda37affce9&biz_id=&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~koosearch~default-1-128267888-null-null.268%5Ev1%5Econtrol&utm_term=-s&spm=1018.2226.3001.4450
二. 然后新建crypto.js文件,封装自定义加密和解密的方法,并导出
import CryptoJS from 'crypto-js'
// 默认的KEY与iv与后端保持一致,不采用后端传值密钥
const KEY = CryptoJS.enc.Utf8.parse('aaDJL2d9DfhLZO0z');// 密钥
const IV = CryptoJS.enc.Utf8.parse('412ADDSSFA342442');// 偏移量
/** AES加密 */
export function Encrypt(word, keyStr, ivStr) {
let key = KEY;
let iv = IV;
if (keyStr) {
key = CryptoJS.enc.Utf8.parse(keyStr);
iv = CryptoJS.enc.Utf8.parse(ivStr);
}
let srcs = CryptoJS.enc.Utf8.parse(word);
var encrypted = CryptoJS.AES.encrypt(srcs, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.ZeroPadding
});
return CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
},},
/** AES 解密 */
export function Decrypt(word, keyStr, ivStr) {
let key = KEY;
let iv = IV;
if (keyStr) {
key = CryptoJS.enc.Utf8.parse(keyStr);
iv = CryptoJS.enc.Utf8.parse(ivStr);
}
let base64 = CryptoJS.enc.Base64.parse(word);
let src = CryptoJS.enc.Base64.stringify(base64);
var decrypt = CryptoJS.AES.decrypt(src, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.ZeroPadding
});
var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
return decryptedStr.toString();
},},
三. 直接在需要页面,引入使用
//引入
import {Decrypt,Encrypt} from "./crypto.js";
//使用方式
Encrypt(JSON.stringify(config.data));//加密
eg: //密码加密
this.formLogin.password = Encrypt(JSON.stringify(this.formLogin.password));
JSON.parse(Decrypt(response.data));//解密
eg: //密码解密
this.formLogin.password = JSON.parse(Decrypt(this.getCookie("password")));
创作不易,感觉有用,就一键三连,感谢(●'◡'●)