记录使用 `crypto-js` 和 `jsencrypt` 实现 JS 加密的方法

在 Web 开发中,数据的加密和解密是非常重要的操作,尤其是对于需要保护用户隐私的应用。JavaScript 提供了许多加密工具库,其中 crypto-jsjsencrypt 是常用的加密工具。本文将详细介绍如何使用这两个库实现对数据的加密和解密,并提供实际的代码示例。

1. 安装 crypto-jsjsencrypt

1.1 安装 crypto-js

crypto-js 是一个纯 JavaScript 编写的加密标准库,提供了常见的加密算法,如 AES、SHA 等。你可以通过 npm 或 CDN 引入 crypto-js

使用 npm 安装:
npm install crypto-js
使用 CDN 引入:
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.3.0-1-crypto-js.min.js"></script>

1.2 安装 jsencrypt

jsencrypt 是一个用于 RSA 加密的 JavaScript 库,常用于公钥加密和私钥解密操作。你也可以通过 npm 或 CDN 引入。

使用 npm 安装:
npm install jsencrypt
使用 CDN 引入:
<script src="https://cdn.jsdelivr.net/npm/jsencrypt/bin/jsencrypt.min.js"></script>

2. 使用 crypto-js 实现加密与解密

2.1 AES 对称加密

AES(Advanced Encryption Standard)是一种对称加密算法,意味着加密和解密使用相同的密钥。crypto-js 提供了 AES 的实现,使用起来非常方便。

AES 加密示例:
// 引入 crypto-js 库
const CryptoJS = require("crypto-js");

// 加密
function encryptAES(message, secretKey) {
   
   
  const ciphertext = CryptoJS.AES.encrypt(message, secretKey).