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

vue aes加密

作者:刀剑傲天   发布日期:2025-05-10   浏览:49

// 引入crypto-js库,用于AES加密
import CryptoJS from 'crypto-js';

// 定义一个方法进行AES加密
function encryptByAES(message, key) {
    // 将key转换为32位的密钥(AES-256)
    const secretKey = CryptoJS.enc.Utf8.parse(key);
    // 进行AES加密,使用CBC模式和PKCS7填充
    const encrypted = CryptoJS.AES.encrypt(message, secretKey, {
        iv: secretKey, // 初始化向量,这里用密钥作为IV
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    });
    // 返回Base64编码的加密结果
    return encrypted.toString();
}

// 定义一个方法进行AES解密
function decryptByAES(ciphertext, key) {
    // 将key转换为32位的密钥(AES-256)
    const secretKey = CryptoJS.enc.Utf8.parse(key);
    // 进行AES解密
    const decrypted = CryptoJS.AES.decrypt(ciphertext, secretKey, {
        iv: secretKey, // 初始化向量,这里用密钥作为IV
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    });
    // 返回解密后的字符串
    return decrypted.toString(CryptoJS.enc.Utf8);
}

// 示例用法
const key = '1234567890123456'; // 16字节的密钥
const message = 'Hello, Vue AES Encryption!';

// 加密
const encryptedMessage = encryptByAES(message, key);
console.log('Encrypted:', encryptedMessage);

// 解密
const decryptedMessage = decryptByAES(encryptedMessage, key);
console.log('Decrypted:', decryptedMessage);

解释说明:

  1. 引入CryptoJS库:我们使用crypto-js库来进行AES加密和解密操作。你需要通过npm或CDN等方式引入这个库。
  2. 加密方法encryptByAES:该方法接受两个参数,一个是待加密的消息message,另一个是加密密钥key。它将消息使用AES算法加密,并返回Base64编码的加密结果。
  3. 解密方法decryptByAES:该方法同样接受两个参数,一个是加密后的密文ciphertext,另一个是解密密钥key。它将密文解密并返回原始消息。
  4. 示例用法:展示了如何使用这两个方法对消息进行加密和解密。

请注意,AES加密中的密钥长度通常为16、24或32字节(分别对应AES-128、AES-192和AES-256)。在示例中,我们使用了16字节的密钥。如果你需要更长的密钥,请确保其长度符合要求。

上一篇:vue3 router.push

下一篇:vue快速入门

大家都在看

vue.config.js configu

node.js vue

vue查看版本

vue等待几秒

vue3 setup computed

vue screenfull

vue json.stringify

vue 遍历list

typescript vue

vue 复选框

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

Laravel 中文站