1

コードで同じ暗号を使用して複数の文字列を暗号化しようとしています

var iv = _crypto.randomBytes(16).slice(0, 12);
var salt = _crypto.randomBytes(64);
var key = _crypto.pbkdf2Sync(symmetricKey, salt, 2145, 32, 'sha512');

var cipher = _crypto.createCipheriv('aes-256-gcm', key,iv);

var a = Buffer.concat([cipher.update("data1", 'utf8'), cipher.final()]);
var b = Buffer.concat([salt, iv, a]).toString('base64');

var c = Buffer.concat([cipher.update("data2", 'utf8'), cipher.final()]);

エラーを表示することなく、最後の行で実行が失敗しました。「TypeError: error:00000000:lib(0):func(0):reason(0)」

さらに調べてみると、cipher.final() を実行すると、暗号を使用できないことがわかりました。しかし、以前に(data1の暗号化中に)それを行わないと、「data1の暗号化された形式」の復号化中に、cipher.finalが元の暗号化された文字列が追加された残りの暗号化されたコンテンツを返すため、失敗します。

複数の文字列を暗号化する最善の方法は何ですか?それとも、すべての文字列に対して個別の暗号を作成する必要がありますか?

4

0 に答える 0