liangfengshuang

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  阅读(1472)  评论(0编辑  收藏  举报

导航