node.js 实现aes加密
时间: 2023-11-07 07:48:37 浏览: 159
以下是使用 node.js 实现 AES 加密的示例代码:
```javascript
const crypto = require('crypto');
const plaintext = 'Hello World!';
const key = '0123456789abcdef0123456789abcdef';
const iv = '0123456789abcdef';
function aesEncrypt(data, key, iv) {
const cipher = crypto.createCipheriv('aes-256-cbc', key, iv);
let encrypted = cipher.update(data, 'utf8', 'base64');
encrypted += cipher.final('base64');
return encrypted;
}
const ciphertext = aesEncrypt(plaintext, key, iv);
console.log('Ciphertext:', ciphertext);
```
在上面的示例代码中,我们使用 `crypto` 模块提供的 `createCipheriv` 方法创建了一个 AES 加密器。其中,第一个参数 `'aes-256-cbc'` 表示使用 AES-256 算法和 CBC 模式进行加密,第二个参数 `key` 是加密使用的密钥,第三个参数 `iv` 是初始化向量。
然后,我们调用加密器的 `update` 方法将明文数据进行加密,最后调用 `final` 方法输出加密后的密文。
需要注意的是,使用 CBC 模式进行加密时,需要指定初始化向量 iv,该值应该是一个随机值,且必须在解密时使用相同的值。在上面的示例代码中,我们使用了一个简单的固定值作为 iv,实际应用中应该使用更安全的方式生成随机的 iv 值。
阅读全文