Другой, но такой же результат с zlib - PullRequest
0 голосов
/ 31 августа 2018

У меня есть повторная проверка, которая не сработала, потому что мой хеш zlib отличается для одного и того же файла.

Я получил зашифрованные данные (файл XML) с помощью AES от моего клиента. Я расшифровал данные (с помощью Cipher) и получил байтовый массив данных в сжатом виде и в кодировке base64.

Я декодирую base64, разархивирую и получил свой XML-файл.

Если я сделаю это снова, я получу другую базу64 из Шифра. Я расшифровал его, разархивировал и получил точно такой же XML, как показано ниже.

С этой проблемой моя повторная проверка не сработала, потому что значение base64 отличается, и я не понимаю, почему.

Мое значение base64 составляет около 3000 символов, и только 10-15 последних символов отличаются.

На самом деле это программное обеспечение на PHP, и все хорошо с ним. На новом сервере в JAVA мы получили эту ошибку.

Итак, данные клиента верны, JAVA делает то, что я не могу объяснить.

Есть идеи?

Спасибо

1 Ответ

0 голосов
/ 01 сентября 2018

Ваш вопрос довольно сложно разобрать, но я думаю, что вы говорите, что если вы распакуете что-то сжатое с помощью PHP, а затем повторно сжимаете это с помощью Java, вы получите разные сжатые данные. Когда вы распаковываете эти данные, вы получаете именно исходные несжатые данные.

Если это правильно, , тогда нет проблем . Нет уверенности в том, что другой компрессор даст одинаковый результат, или даже один и тот же компрессор, поскольку у вас могут быть разные настройки, или даже один и тот же компрессор с одинаковыми настройками, поскольку вы можете использовать другую версию. «Я декодирую его, распаковываю и получаю точно такой же XML, как показано ниже», означает, что все компрессоры и декомпрессоры делают то, что должны. Нет уверенности в том, что декомпрессия, сопровождаемая сжатием, когда-либо даст точно такой же результат. Единственная гарантия для компрессора без потерь состоит в том, что сжатие с последующей декомпрессией даст точно такой же результат.

Вы создаете проблему для себя с "У меня есть дубликат проверки". Проверка сжатых данных не проверяет наличие дублированных несжатых данных. Если вы хотите найти дубликаты или проверить целостность процесса сжатия, передачи и распаковки, то вам нужно сделать и то, и другое с использованием несжатых данных, а не сжатых данных.

...