Почему узел aes-256-gcm может создавать шифротексты с длинами, не делимыми на 16? - PullRequest
1 голос
/ 03 апреля 2020

Несмотря на то, что AES-256-GCM использует шиферный блок с размером блока 16 байт, почему следующий код 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>

1 Ответ

1 голос
/ 03 апреля 2020

Очевидно, что GCM не требует заполнения, и при этом не требуется, чтобы открытый текст был кратным размеру блока.

Дополнительная информация здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...