https://www.npmjs.com/package/crypto-js

1、安装

(1)进入官网:https://github.com/brix/crypto-js/tree/4.0.0

(2)下载ZIP
image.png

(3)打开ZIP,把crypto-js.js 提取出来,放在项目中存放静态文件的地方
image.png

(4)通过网站的主页index.html 中引入(下面的例子是通过vite构架的项目),就会挂载到window下

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <link rel="icon" href="/ytdlogo.ico" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Vite App</title>
  8. </head>
  9. <body>
  10. <div id="app"></div>
  11. <script type="module" src="/src/main.js"></script>
  12. <script type="text/javascript" src="/public/cdn/crypto-js.js">这里引入这个文件</script>
  13. </body>
  14. </html>

2、使用

安装后,就会自动挂载到了window.里面,用法如下

  1. // 加密
  2. var ciphertext = window.CryptoJS.AES.encrypt('my message', 'secret key 123').toString();
  3. // 解密
  4. var temp = window.CryptoJS.AES.decrypt(ciphertext, 'secret key 123');
  5. var originalText = temp.toString(window.CryptoJS.enc.Utf8);
  6. console.log(originalText); // 'my message'

可以创建一个util/secret.js 文件,写2个函数,专门进行加密和解密

  1. //解密方法
  2. export function Decrypt(word, key) {
  3. let temp = window.CryptoJS.AES.decrypt(word, key); //解密
  4. let utf8 = temp.toString(window.CryptoJS.enc.Utf8); //解密后的转回utf8编码
  5. var originalText = CryptoJS.enc.Utf8.stringify(utf8);//utf8编码转回字符串
  6. return originalText
  7. }
  8. //加密方法
  9. export function Encrypt(word, key) {
  10. let wordUtf8 = CryptoJS.enc.Utf8.parse(word); //字符串转成utf8
  11. let temp = window.CryptoJS.AES.encrypt(wordUtf8, key).toString();
  12. return temp
  13. }

后面要用,直接import引入util/secret.js 文件,然后调用加密解密的方法就可以了

  1. import { Encrypt } from "/@/util/secret.js";
  2. console.log(Encrypt('abc','123')) //加密,前面abc是加密的内容,后面123是密钥
  3. // U2FsdGVkX19DW/gjqVY0+0crd8/vJ/ZHYjGpe0pscSE= 每次加密都不一样的

其他

算法

CryptoJS支持AES-128,AES-192和AES-256。它将根据您传入的密钥的大小来选择变体。如果使用密码短语,它将生成一个256位的AES-256密钥。

API

https://cryptojs.gitbook.io/docs/#ciphers