要在前端使用 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)將解密後的數據轉換為可讀的字符串形式。
請注意,使用加密算法進行解密的關鍵是確保在前後端之間協商和使用相同的密鑰、偏移向量、模式和填充方式。同時,為了保證數據的安全性,密鑰和偏移向量需要妥善保管和管理,確保只有授權的人員能夠訪問和使用它們。