crypto-js 加密、解密使用方法
crypto-js 加密、解密使用方法
爱宇阳
于 2021-12-10 15:35:32 发布
阅读量5.9w
收藏 201
点赞数 38
分类专栏: Vue JavaScript HTML5 文章标签: javascript 前端 vue.js
版权
华为云开发者联盟
该内容已被华为云开发者联盟社区收录
加入社区
Vue
同时被 3 个专栏收录
81 篇文章9 订阅
订阅专栏
JavaScript
43 篇文章2 订阅
订阅专栏
HTML5
27 篇文章0 订阅
订阅专栏
一、安装crypto-js
npm install crypto-js
二、引入crypto-js
支持ES6导入、Modular
import CryptoJS from "crypto-js";
或者
const CryptoJS = require("crypto-js");
三、设置密钥和密钥偏移量
// 十六位十六进制数作为密钥
const SECRET_KEY = CryptoJS.enc.Utf8.parse("1234123412341234");
// 十六位十六进制数作为密钥偏移量
const SECRET_IV = CryptoJS.enc.Utf8.parse("1234123412341234");
四、封装加密方法
/**
* 加密方法
* @param data
* @returns {string}
*/
export function encrypt(data) {
if (typeof data === "object") {
try {
// eslint-disable-next-line no-param-reassign
data = JSON.stringify(data);
} catch (error) {
console.log("encrypt error:", error);
}
}
const dataHex = CryptoJS.enc.Utf8.parse(data);
const encrypted = CryptoJS.AES.encrypt(dataHex, SECRET_KEY, {
iv: SECRET_IV,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.ciphertext.toString();
}
五、封装解密方法
/**
* 解密方法
* @param data
* @returns {string}
*/
export function decrypt(data) {
const encryptedHexStr = CryptoJS.enc.Hex.parse(data);
const str = CryptoJS.enc.Base64.stringify(encryptedHexStr);
const decrypt = CryptoJS.AES.decrypt(str, SECRET_KEY, {
iv: SECRET_IV,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
const decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
return decryptedStr.toString();
}
六、使用方法
import { decrypt, encrypt } from "@/utils/encrypt";
const data = "13172"
const encryptText = encrypt(data);
console.log("加密", encryptText);
const decryptText = decrypt(encryptText);
console.log("解密", decryptText);
————————————————
版权声明:本文为CSDN博主「爱宇阳」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_34707272/article/details/121857485
posted on 2024-01-23 08:38 liangfengshuang 阅读(1825) 评论(0) 编辑 收藏 举报