📅  最后修改于: 2023-12-03 14:44:38.122000             🧑  作者: Mango
在 Node.js 中,使用 crypto.createDecipheriv()
方法来创建一个 Decipheriv
对象,用于对称加密算法的解密。该方法可以指定加密算法、加密秘钥和初始向量等参数。
以下示例代码使用 crypto.createDecipheriv()
方法来解密一个数据包。
const crypto = require('crypto');
const fs = require('fs');
const algorithm = 'aes-256-cbc';
const key = 'mysecretkey12345';
const iv = Buffer.alloc(16, 0);
const input = fs.readFileSync('./encrypted-data.bin');
const decipher = crypto.createDecipheriv(algorithm, key, iv);
let output = decipher.update(input, 'binary', 'utf8');
output += decipher.final('utf8');
console.log(output);
crypto.createDecipheriv(algorithm, key, iv[, options])
'aes-256-cbc'
。该参数值需要与加密时使用的算法名称一致。crypto.createDecipheriv()
方法返回一个 Decipheriv
对象。该对象实现了 stream.Transform
接口,因此可以通过调用 write()
和 end()
方法来进行解密操作。在解密完成后,可以通过调用 final()
方法来获取解密结果。
authTag
参数。update()
和 final()
方法的第二个参数。如果结果以二进制格式存储,则需要指定 binary
,如果结果以 UTF-8 编码格式存储,则需要指定 utf8
。