我使用node.js中的crypto npm模块加密 音频文件,并尝试解密 < strong> android 侧使用相同的算法和密钥。
加密代码是:
加密参数
var crypto = require('crypto'),
algorithm = 'aes-256-cbc',
password = 'somepassword'; //encyption parameters
加密功能
function encrypt(buffer) {
var cipher = crypto.createCipher(algorithm, password);
var crypted = Buffer.concat([cipher.update(buffer), cipher.final()]);
return crypted;
}
现在,对于解密,我们需要使用一些IV( 初始化向量 ),正如研究所说not to use same IV for any two files。< / p>
所以,我现在只想知道 如何设置自定义IV,并且可以使用加密或任何方法为node.js中的每个文件 生成随机或单独的IV加密期间的其他模块。
如果有人可以帮助我,那将会很棒。
答案 0 :(得分:0)
创建IV,使用以下命令获取16个随机字节:
var iv = crypto.randomBytes(16)
然后,在创建密码时,请更改
var cipher = crypto.createCipher(algorithm, password);
到
var cipher = crypto.createCipheriv(algorithm, password, iv);
IV不会附加到生成的密文,因此您需要将其单独发送到android端(可以用明文发送)。