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