// 引入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);
crypto-js
库来进行AES加密和解密操作。你需要通过npm或CDN等方式引入这个库。encryptByAES
:该方法接受两个参数,一个是待加密的消息message
,另一个是加密密钥key
。它将消息使用AES算法加密,并返回Base64编码的加密结果。decryptByAES
:该方法同样接受两个参数,一个是加密后的密文ciphertext
,另一个是解密密钥key
。它将密文解密并返回原始消息。请注意,AES加密中的密钥长度通常为16、24或32字节(分别对应AES-128、AES-192和AES-256)。在示例中,我们使用了16字节的密钥。如果你需要更长的密钥,请确保其长度符合要求。
上一篇:vue3 router.push
下一篇:vue快速入门
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站