uniapp 使用aes-256-ecb加解密写个正确列子
时间: 2024-10-10 09:09:28 浏览: 27
php使用openssl_encrypt中的AES-128-ECB加密解密
UniApp 是一个跨平台的前端框架,它允许开发者编写一次代码,然后在多个平台上运行,包括iOS、Android、Web等。AES (Advanced Encryption Standard) 是一种常用的对称加密算法,其中AES-256-ECB是最基本的模式,表示每块数据独立加密。
下面是一个简单的 UniApp 加密和解密 AES-256-ECB 的示例:
```javascript
// 导入必要的库
import crypto from '@esbuild-plugin/crypto';
// 定义加密函数
async function encrypt(text, key) {
const iv = crypto.getRandomBuffer(16); // 初始化向量,保证每次加密结果不同
const cipher = crypto.createCipheriv('aes-256-ecb', key, iv);
let encrypted = cipher.update(text, 'utf8', 'hex'); // 需要将明文转换为十六进制
encrypted += cipher.final('hex');
return { iv: iv.toString('base64'), ciphertext: encrypted };
}
// 解密函数
async function decrypt(ciphertext, key, ivBase64) {
ivBase64 = Buffer.from(ivBase64, 'base64').toString(); // 将 Base64 编码还原为二进制
const iv = crypto.createBuffer(ivBase64);
const decipher = crypto.createDecipheriv('aes-256-ecb', key, iv);
let decrypted = decipher.update(ciphertext, 'hex', 'utf8');
decrypted += decipher.final('utf8');
return decrypted;
}
// 示例
const secretKey = 'your_secret_key'; // 用于加密的密钥,需要保密
let originalText = 'Hello, UniApp!';
let encryptedData = await encrypt(originalText, secretKey);
// 输出加密后的信息
console.log('Encrypted:', encryptedData);
// 解密示例
let decryptedText = await decrypt(encryptedData.ciphertext, secretKey, encryptedData.iv);
console.log('Decrypted:', decryptedText);
```
注意:
1. 此例子仅演示了基本的加密和解密过程,实际生产环境中应更安全地处理密钥和初始化向量。
2. uni-app 中使用第三方库 `@esbuild-plugin/crypto`,确保已正确安装和引入。
3.
阅读全文