aes-256-cbc加密和解密

时间:2015-11-24 07:59:32

标签: android node.js encryption cryptography aes

我使用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加密期间的其他模块。

如果有人可以帮助我,那将会很棒。

1 个答案:

答案 0 :(得分:0)

创建IV,使用以下命令获取16个随机字节:

var iv = crypto.randomBytes(16)

然后,在创建密码时,请更改

var cipher = crypto.createCipher(algorithm, password);

var cipher = crypto.createCipheriv(algorithm, password, iv);

IV不会附加到生成的密文,因此您需要将其单独发送到android端(可以用明文发送)。