要在前端使用 AES 算法解密后端返回的数据,可以使用 JavaScript 中提供的加密库,如 CryptoJS。
安装 / 引入#
- 首先,确保在前端的 HTML 文件中引入 CryptoJS 库。
1.1 你可以通过在 HTML 文件的标签内添加以下代码来引入 CryptoJS:
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js"></script>
1.2 要使用 npm 安装 CryptoJS,请执行以下步骤:
1.2.1 在你的项目目录中打开终端或命令行界面。
1.2.2 运行以下命令来安装 CryptoJS:
npm install crypto-js
这将从 npm 仓库中下载 CryptoJS 库及其依赖项,并将其保存到项目的 node_modules 目录中。
- 在你的 JavaScript 文件中,使用 require 或 import 语句来引入所需的 CryptoJS 模块,例如:
// 使用require
const CryptoJS = require('crypto-js');
// 使用import
import CryptoJS from 'crypto-js';
选择适当的引入方式,取决于你的项目的模块化系统(CommonJS 或 ES 模块)。
现在,你可以在前端代码中使用 CryptoJS 库的各种加密算法和工具函数,包括 AES 算法。
请注意,当使用 npm 安装 CryptoJS 时,你需要确保你的前端项目是使用构建工具(如 Webpack、Parcel、Rollup 等)进行打包和构建的。这样,构建工具会将安装的库正确地包含在你的最终项目文件中。如果你在简单的 HTML 文件中直接使用 CryptoJS,可以使用 CDN 引入方式,而不必使用 npm 安装。
- 接下来,使用以下代码示例演示如何在前端使用 AES 算法解密后端返回的数据:
// 密文数据
const encryptedData = "encrypted data from backend";
// 密钥
const key = CryptoJS.enc.Utf8.parse("your-secret-key");
// 偏移向量
const iv = CryptoJS.enc.Utf8.parse("your-iv");
// 解密
const decryptedData = CryptoJS.AES.decrypt(encryptedData, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
// 解密后的原始数据
const decryptedText = decryptedData.toString(CryptoJS.enc.Utf8);
console.log(decryptedText);
在上述代码中,你需要将 encryptedData 替换为从后端返回的密文数据。然后,将 your-secret-key 替换为用于加密和解密的密钥。your-iv 是 AES 算法的偏移向量。请注意,密钥和偏移向量需要与后端使用的值相匹配。
解密步骤涉及调用 CryptoJS.AES.decrypt () 方法来执行解密操作。使用提供的密钥、偏移向量以及相应的模式和填充,将密文数据解密为原始数据。最后,通过调用 toString () 方法以指定的字符编码(例如 CryptoJS.enc.Utf8)将解密后的数据转换为可读的字符串形式。
请注意,使用加密算法进行解密的关键是确保在前后端之间协商和使用相同的密钥、偏移向量、模式和填充方式。同时,为了保证数据的安全性,密钥和偏移向量需要妥善保管和管理,确保只有授权的人员能够访问和使用它们。