You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript中加密解密字符串?遇CryptoJS未定义问题求解

解决‘CryptoJS is not defined’错误的方案

嘿,我来帮你搞定这个报错问题~出现CryptoJS is not defined的核心原因很简单:你的JavaScript代码执行时,CryptoJS库还没被加载到位,或者压根没正确引入它。

下面给你两种场景下的解决方案:

1. 浏览器环境(直接用CDN)

你要确保引入CryptoJS的脚本标签放在你的自定义代码前面,因为浏览器是按顺序加载执行脚本的,如果你的代码先跑了,库还没加载完,自然找不到CryptoJS对象。

正确的代码示例:

<!-- 先加载CryptoJS的AES库 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/aes.js"></script>
<!-- 再写你的加密解密逻辑 -->
<script>
  // 加密
  var encrypted = CryptoJS.AES.encrypt("Message", "Secret Passphrase");
  // 解密
  var decrypted = CryptoJS.AES.decrypt(encrypted, "Secret Passphrase");
  
  // 划重点:解密后要转成UTF8字符串才能看到原内容哦
  console.log(decrypted.toString(CryptoJS.enc.Utf8)); // 会输出 "Message"
</script>

另外还要注意:如果你的网络访问不了这个CDN链接,也会导致库加载失败,这时候可以换个可用的CDN,或者下载库文件到本地引入。

2. 模块化环境(Node.js/Webpack等)

如果是在Node.js或者用构建工具的项目里,不能直接用CDN的方式,得先安装依赖包:

npm install crypto-js

然后在代码里导入使用:

// CommonJS方式
const CryptoJS = require("crypto-js");

// 或者ES模块方式(如果你的项目支持)
// import CryptoJS from "crypto-js";

// 加密解密逻辑
var encrypted = CryptoJS.AES.encrypt("Message", "Secret Passphrase");
var decrypted = CryptoJS.AES.decrypt(encrypted, "Secret Passphrase");
console.log(decrypted.toString(CryptoJS.enc.Utf8));

内容的提问来源于stack exchange,提问作者PRIYANKA MORE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:22:26