Добавление информации о контрольной сумме в файл

Я хотел бы добавить информацию контрольной суммы в файл, которую я передаю. Это tar.gz или tar.xz файл, и я могу передавать только один файл на удаленную сторону.

Как вы рекомендуете вводить информацию контрольной суммы?

Я хочу, чтобы контрольная сумма всего архива, а не его содержимое (я хотел бы проверить его целостность) до «распаковки».

Я знаю, что я мог бы упаковать его снова в каком-то формате, поддерживая контрольные суммы (например, rar ), но это вычислительная стоимость для «переупаковки», просто для добавления контрольной суммы (с другой стороны, мне не нравится формат rar ). Поэтому предпочтительнее было бы что-то вроде gzip & gunzip т. Д., Но для добавления, проверки и удаления контрольной суммы.

Любые инструменты, идеи, сценарии, обходные пути?

Я правильно .gz и .gz поддерживают конкатенацию? Может быть, стоит использовать эту функцию для добавления сжатой контрольной суммы в конец файла?

  • Немедленно распечатать список файлов архива (без распаковки всего архива)
  • Как указать дополнительные параметры для опции -compress-program для GNU sort?
  • Как установить Uglify на Debian Sid
  • Почему мне нужен один файл?
  • сжатие lrzip не сокращает случайные данные
  • Что вы делаете для сканирования с разрешением 600 dpi при работе с небольшим выходным файлом?
  • Инструмент для сжатия / распаковки STDIN
  • Как перекомпилировать 2 миллиона файлов gzip, не сохраняя их дважды?
  • One Solution collect form web for “Добавление информации о контрольной сумме в файл”

     cat file.gz file.gz.sig > transfer_me.signed 

    Затем на удаленном хосте вы отделите добавленную контрольную сумму, используя

     tail -c length_of_the_checksum_info transfer_me.signed > file.gz.sig head -c -length_of_the_checksum_info transfer_me.signed > file.gz 

    Обратите внимание на минус во второй команде. Длина зависит от типа контрольной суммы, которую вы используете. Вы можете просто

     md5sum file.gz | cut -d ' ' -f 1 > file.gz.sig 

    Обратите также внимание на то, что таким образом вы можете сразу распаковать файл transfer_me.signed без разделения, поскольку tar будет игнорировать конечный «мусор».


    Аналогичное решение с дополнительными механизмами шифрования или скремблирования используется для подписывания обновлений для многих мобильных устройств – например, Amazon Kindles . Но в их случае идентификация архивного файла нежелательна, поэтому они помещают всю информацию опечатки в начале файла обновления.

    Linux и Unix - лучшая ОС в мире.