https://www.npmjs.com/package/crypto-js
1、安装
(1)进入官网:https://github.com/brix/crypto-js/tree/4.0.0,
(2)下载ZIP
(3)打开ZIP,把crypto-js.js 提取出来,放在项目中存放静态文件的地方
(4)通过网站的主页index.html 中引入(下面的例子是通过vite构架的项目),就会挂载到window下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="icon" href="/ytdlogo.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vite App</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.js"></script>
<script type="text/javascript" src="/public/cdn/crypto-js.js">这里引入这个文件</script>
</body>
</html>
2、使用
安装后,就会自动挂载到了window.里面,用法如下
// 加密
var ciphertext = window.CryptoJS.AES.encrypt('my message', 'secret key 123').toString();
// 解密
var temp = window.CryptoJS.AES.decrypt(ciphertext, 'secret key 123');
var originalText = temp.toString(window.CryptoJS.enc.Utf8);
console.log(originalText); // 'my message'
可以创建一个util/secret.js 文件,写2个函数,专门进行加密和解密
//解密方法
export function Decrypt(word, key) {
let temp = window.CryptoJS.AES.decrypt(word, key); //解密
let utf8 = temp.toString(window.CryptoJS.enc.Utf8); //解密后的转回utf8编码
var originalText = CryptoJS.enc.Utf8.stringify(utf8);//utf8编码转回字符串
return originalText
}
//加密方法
export function Encrypt(word, key) {
let wordUtf8 = CryptoJS.enc.Utf8.parse(word); //字符串转成utf8
let temp = window.CryptoJS.AES.encrypt(wordUtf8, key).toString();
return temp
}
后面要用,直接import引入util/secret.js 文件,然后调用加密解密的方法就可以了
import { Encrypt } from "/@/util/secret.js";
console.log(Encrypt('abc','123')) //加密,前面abc是加密的内容,后面123是密钥
// U2FsdGVkX19DW/gjqVY0+0crd8/vJ/ZHYjGpe0pscSE= 每次加密都不一样的
其他
算法
CryptoJS支持AES-128,AES-192和AES-256。它将根据您传入的密钥的大小来选择变体。如果使用密码短语,它将生成一个256位的AES-256密钥。