Как сопоставить формат сжатия для конкретных сжатых данных?Python

Программы на Python
Ответить
Anonymous
 Как сопоставить формат сжатия для конкретных сжатых данных?

Сообщение Anonymous »

Я пытаюсь распаковать и повторно сжать определенный фрагмент сжатых данных в Python, чтобы воспроизвести исходный сжатый результат. Однако мне не удалось добиться соответствия с zlib, и я не уверен, какой метод или параметры сжатия использовались для исходных сжатых данных.
Вот код, который я использую:

Код: Выделить всё

import zlib

original_compress = '78010dc2390a80400c05d052b4d4ce4a3c8024933fdb719259c046c1c2f32bbc696ba098cd92b23242ed66625db568498d106d5e22e0202e4b622f082c24eba0577deeb3eee34bfe20fa7df036131b0000f53a00000000'

print('original_compress:', original_compress)

# Decompress the data
decompress = zlib.decompress(bytes.fromhex(original_compress))
print('decompress:', decompress.hex())

# Recompress the data
again_compress = zlib.compress(decompress)
print('again_compress:', again_compress.hex())

# Compare the results
if original_compress == again_compress.hex():
print('Matched')
else:
print('NotMatched')
Проблема:
Распаковка работает нормально с zlib, поэтому я предполагаю, что это формат, совместимый с zlib.
Однако повторное сжатие не дает результата побайтовое совпадение с исходными данными.
Наблюдения:
Исходные сжатые данные начинаются с 78 01, что предполагает использование заголовка zlib (возможно, DEFLATE без сжатия).
Распакованные данные действительны, и я могу подтвердить целостность распаковки.
Вопросы:
Как я могу воспроизвести точный исходный сжатый результат? Существуют ли определенные параметры или флаги, которые мне нужно использовать с zlib?
Могут ли исходные данные использовать специальную или нестандартную реализацию сжатия? Если да, то как я могу это определить?
Существуют ли какие-либо инструменты или библиотеки (помимо zlib), которые могут помочь мне перепроектировать используемый формат сжатия?

Подробнее здесь: https://stackoverflow.com/questions/792 ... essed-data
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»