Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

js aes加密解密

作者:刀魂使者   发布日期:2026-06-22   浏览:61

// AES 加密解密示例代码

// 引入 crypto-js 库,这是一个常用的 JavaScript 加密库
// 可以通过 npm 安装:npm install crypto-js
// 或者直接在 HTML 中引入 <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js"></script>

const CryptoJS = require("crypto-js");

// 定义加密函数
function encrypt(message, secretKey) {
    // 使用 AES 算法进行加密,模式为 CBC,填充为 PKCS7
    const encrypted = CryptoJS.AES.encrypt(message, secretKey, {
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    });
    // 返回加密后的字符串,使用 Base64 编码
    return encrypted.toString();
}

// 定义解密函数
function decrypt(encryptedMessage, secretKey) {
    // 解密时需要先将 Base64 编码的字符串转换回加密对象
    const decrypted = CryptoJS.AES.decrypt(encryptedMessage, secretKey, {
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    });
    // 返回解密后的字符串
    return decrypted.toString(CryptoJS.enc.Utf8);
}

// 示例用法
const secretKey = "thisIsASecretKey123"; // 密钥,必须是16、24或32字节长
const message = "Hello, World!"; // 要加密的消息

const encryptedMessage = encrypt(message, secretKey);
console.log("Encrypted:", encryptedMessage);

const decryptedMessage = decrypt(encryptedMessage, secretKey);
console.log("Decrypted:", decryptedMessage);

解释说明:

  1. CryptoJS 库:这是一个流行的 JavaScript 加密库,支持多种加密算法,包括 AES。
  2. 加密函数 (encrypt):使用 AES 算法对消息进行加密,并返回 Base64 编码的加密字符串。
  3. 解密函数 (decrypt):将 Base64 编码的加密字符串解密回原始消息。
  4. 密钥 (secretKey):AES 加密要求密钥长度为 16、24 或 32 字节。在这个例子中,我们使用了一个 16 字节的密钥。
  5. CBC 模式和 PKCS7 填充:AES 支持多种工作模式和填充方式,这里使用的是 CBC 模式和 PKCS7 填充。

希望这个示例能帮助你理解如何在 JavaScript 中使用 AES 进行加密和解密。

上一篇:js aes 加密

下一篇:js aes加密

大家都在看

js 数组打乱顺序

js 两个数组取交集

js 数组对象排序

js 对象数组排序

js 数组删掉第一个值

js fill

js fill方法

js 数组连接

js json数组

js 数组复制

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站