vue3使用aes加密解密
时间: 2024-10-18 14:23:22 浏览: 30
vue项目中使用AES实现密码加密解密(ECB和CBC两种模式)
Vue3本身并不直接提供AES加密解密的功能,但是你可以通过引入一些第三方库,如`crypto-js`或者`jsencrypt`来进行AES操作。以下是使用`crypto-js`的一个简单示例:
首先,你需要安装`crypto-js`库:
```bash
npm install crypto-js
```
然后,在你的Vue组件中,可以这样做来加密数据:
```javascript
import CryptoJS from 'crypto-js';
// 加密函数
const encrypt = (plainText) => {
const key = 'your_secret_key'; // 设置你的密钥
const iv = CryptoJS.lib.WordArray.random(16); // 生成随机向量
let encrypted = CryptoJS.AES.encrypt(
plainText,
key,
{ mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7, iv: iv }
);
return {
ciphertext: encrypted.toString(CryptoJS.enc.Base64),
iv: iv.toString(CryptoJS.enc.Hex)
};
};
// 解密函数
const decrypt = (ciphertext, iv) => {
const key = 'your_secret_key'; // 同样设置你的密钥
const encrypted = CryptoJS.parseBase64(ciphertext);
try {
const decrypted = CryptoJS.AES.decrypt(
encrypted,
key,
{ mode: CryptoJS.mode.CBC, iv: CryptoJS.lib.WordArray.from(iv, CryptoJS.enc.Hex), padding: CryptoJS.pad.Pkcs7 }
);
return decrypted.toString(CryptoJS.enc.Utf8);
} catch (e) {
console.error('Decryption error:', e);
return null;
}
};
```
当你需要对数据进行加密或解密时,调用上述函数即可。注意,这里的密钥需要妥善保管,因为它是加密过程的关键。
阅读全文