マリウス:
16バイトのブロックサイズを有するブロックchiffreを使用してAES-256-GCMにもかかわらず、なぜ次nodejsをコードし、16で割り切れない全長を有する出力を生成しますか?
const crypto = require('crypto')
let iv = Buffer.from('ed655ce15162cecc9a0fc47fbc5055e2', 'hex')
let key = Buffer.from('17c0c95f4499dc8cb2b11d8c68569729484579df9adeceb7898fd9508915e46f', 'hex')
let cipher = crypto.createCipheriv('aes-256-gcm', key, iv)
let outputA = cipher.update("some string", 'utf8')
let outputB = cipher.final()
console.log(outputA.length, outputB.length) //output: "11 0"
//outputA = <Buffer 26 5b 11 63 cf 26 44 81 d2 1d 77>
ウッドストック:
どうやらGCMは、パディングを必要としません。また、ブロックサイズの倍数になるように平文を必要としません。
詳細情報ここに。