Как создать минимальный размер (пустой) zip файл, который имеет 22B?
Я пытаюсь решить некоторую проблему безопасности с файлом, чей хэш MD5 имеет значение 76cdb2bad9582d23c1f6f4d868218d6c.
У меня нет этого файла, но на основе интернет-поиска MD5, я думаю, это минимальный размер zip файла.
Я нашел один пример, и его содержимое точно такое же, как минимальный размер zip файла.
Возможно ли создать такой минимальный размер zip файла (22 B) с помощью команды Linux (или Windows)?
BTW: Недавно я решил аналогичную задачу с файлом gzip: gzip -n EmptyFileName
Ответы
Ответ 1
Здесь вы идете:
50 4b 05 06 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00
У вас есть подпись MD5, которую вы предоставили.
Если у вас есть Info-ZIP zip, вы можете создать его таким образом:
zip empty.zip anyfile
zip -d empty.zip anyfile
Это добавляет "anyfile" в новый zip файл, а затем удаляет его из zip файла, оставляя его пустым.
Ответ 2
Более простая в использовании версия для копирования и вставки в оболочку:
echo UEsFBgAAAAAAAAAAAAAAAAAAAAAAAA== | base64 -d > empty.zip
Это просто печатает версию base64
пустого zip файла (созданного путем создания zip файла с одним файлом, затем удаляя этот единственный файл из zip файла), и изменяет кодировку с base64 -d
и записывает вывод в empty.zip
Если версия base64
, поставляемая с вашей машиной, не использует тот же синтаксис, что и выше, здесь более переносимая, но менее краткая альтернатива:
echo UEsFBgAAAAAAAAAAAAAAAAAAAAAAAA== | openssl enc -d -base64 > empty.zip
Ответ 3
с помощью этого сценария .bat
вы можете создать empty.zip
файл empty.zip
под windows:
@echo off
del /q /f empty.zip >nul 2>nul
certutil -decode "%~f0" empty.zip
-----BEGIN CERTIFICATE-----
UEsFBgAAAAAAAAAAAAAAAAAAAAAAAA==
-----END CERTIFICATE-----
Ответ 4
[email protected] ~ % touch somefile.txt
[email protected] ~ % gzip somefile.txt
[email protected] ~ % ls -al somefile.txt.gz
-rw-r--r-- 1 me me 33 mar 24 17:30 somefile.txt.gz