📅  最后修改于: 2023-12-03 14:44:38.115000             🧑  作者: Mango
在Node.js中,crypto模块提供了加密、解密和计算消息验证码(MAC)的功能。其中,createCipheriv()方法用于创建一个Cipher对象,以实现对数据的加密操作。
createCipheriv()方法的语法如下所示:
crypto.createCipheriv(algorithm, key, iv, options)
其中,
algorithm
:加密算法,例如“aes-256-cbc”;key
:加密密钥;iv
:初始化向量(IV);options
:可选参数,例如“auto_padding”(是否自动填充不完整的块)。createCipheriv()方法返回一个Cipher对象。
下面是一个简单的示例,使用createCipheriv()和createDecipheriv()方法对数据进行加密和解密:
const crypto = require('crypto');
const algorithm = 'aes-256-cbc';
const key = 'my_secret_key';
const iv = crypto.randomBytes(16);
const data = 'Hello, world!';
const cipher = crypto.createCipheriv(algorithm, key, iv);
let encrypted = cipher.update(data, 'utf8', 'hex');
encrypted += cipher.final('hex');
const decipher = crypto.createDecipheriv(algorithm, key, iv);
let decrypted = decipher.update(encrypted, 'hex', 'utf8');
decrypted += decipher.final('utf8');
console.log(decrypted); // 输出:Hello, world!
在上面的示例中,我们使用AES-256-CBC加密算法,指定了一个密钥“my_secret_key”和一个16字节的随机初始化向量(IV)。然后,我们创建了一个Cipher对象,使用update()和final()方法对数据进行加密,并使用createDecipheriv()方法创建一个Decipher对象,使用update()和final()方法解密数据。最后,我们将解密后的数据输出到控制台。