[英]aes-256-cbc encryption and decryption
我正在使用node.js中的crypto npm模塊加密 音頻文件,並嘗試使用相同的算法和密鑰在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( 初始化向量 ),並且研究表明不要對任何兩個文件使用相同的IV 。
因此,我現在只想知道如何設置自定義IV,以及如何在加密過程中使用crypto或任何其他模塊為 node.js中的每個文件生成隨機或單獨的IV 。
如果有人可以在這方面幫助我,那將是很棒的。
要創建IV,請使用以下命令獲取16個隨機字節:
var iv = crypto.randomBytes(16)
然后,在創建密碼時,更改
var cipher = crypto.createCipher(algorithm, password);
至
var cipher = crypto.createCipheriv(algorithm, password, iv);
IV不會附加到生成的密文上,因此您需要將其單獨發送到android端(可以以純文本形式發送)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.