Java AES расшифровывает zip-файлы с неправильным заголовком - PullRequest
1 голос
/ 15 февраля 2012

Я столкнулся со странной проблемой при расшифровке потока zip.

После расшифровки данного потока у меня точно такой же массив байтов, кроме 8 байтов заголовка.

Этодолжно быть 50 4B 03 04 (в соответствии со спецификацией Zip), но я получаю другое.

Когда я дешифрую тот же поток в c #, заголовок правильный.Я использую RijndaelManaged, режим CBC, заполнение ZeroBytePadding и размер блока = 128

В Java я использую AES / CBC / NoPadding размер блока = 128 для расшифровки.

Я полагаю, что причина заключается в заполнении, но тогда я не понимаю, почему остальные байты верны.

Может ли кто-нибудь мне это объяснить?

Большое спасибо.

1 Ответ

2 голосов
/ 16 февраля 2012

В режиме CBC режим заполнения должен влиять только на последние байты вашего сообщения, а не на первые (т.е. от ZeroBytePadding до NoPadding вы можете получить несколько добавленных 0 байтов в конце).

Если вашПервый блок отличается (но остальные совпадают), наиболее вероятной причиной является другой вектор инициализации при шифровании и дешифровании.Проверьте это.

...