Как я могу убедиться в правильности файла .tar.gz
который я недавно скачал с сервера?
1 ответ
Во-первых, вы можете использовать инструменты для вычисления «номера» этого файла, относящегося только к этому файлу и только к этому файлу. этот номер называется «цифровой хэш» или «дайджест»:
http://en.wikipedia.org/wiki/Cryptographic_hash_function
Итак, используйте что-то вроде 'sha256' (лучше) или 'md5' (все еще полезно, хотя под атакой), чтобы вычислить хэш. Рассчитайте его на сервере и на вашей машине. сравнить два. если они идентичны, поздравляю.
Вы найдете много хэш-программ бесплатно, например.
замечания:
если вы не можете рассчитать дайджест файла на сервере, вы не можете быть уверены, что скачали все биты идеально
иногда вам не нужно вычислять дайджест на сервере, так как некоторые люди предоставляют эту информацию и рассказывают вам о дайджесте. но будьте осторожны, вы также должны «загрузить» эту информацию. так что, если кто-то отправит вам неправильный номер и заставит вас загружать неправильный (манипулируемый) файл, тогда дайджест будет бесполезным.
если вы хотите, чтобы ваши клиенты / клиенты могли что-то скачать простым способом, и вы на конце развертывания хотите знать, правильно ли клиент (не всегда разбирающийся в технологиях) загружал файл: используйте что-то отличное от .tar.gz , tarballs (.tar.gz) - это потоки данных, которые не позволяют по-настоящему определить, поступает ли больше данных. с контейнерами, такими как .zip или .7z, это отличается, так как они содержат TOC (оглавление) в конце файла. если клиент загружает .zip и пропускает несколько байтов в конце (тайм-аут из-за медленных соединений), то клиент не сможет открыть файл и получит мгновенную обратную связь. иногда такие контейнеры предлагают контрольную сумму содержимого, чтобы пользователь мог проверить, нормально ли выглядит контейнер. в конце единственный способ сказать, что вы скачали битовую копию файла, - это вычислить его дайджест, как объяснено в начале.