soma de verificação Md5 diferente após gunzip e gzip

1

Eu acidentalmente excluí um punhado de arquivos compactados de uma pasta. Felizmente, eu os descompactei em um local diferente e estou no processo de restaurá-los. Eu tinha as somas de verificação md5 para os arquivos antigos (agora excluídos), mas as somas de verificação dos arquivos recém-compactados não correspondem. Porcaria.

Mas ... Eu tenho outra pasta que contém arquivos gzipados similares da mesma fonte, e quando eu gunzip e imediatamente gzip um desses arquivos, a soma de verificação é novamente diferente, levando-me a suspeitar que o criador dos arquivos usou parâmetros diferentes para o gzip (se houver uma explicação alternativa, eu adoraria ouvi-lo).

Existe alguma maneira de identificar os parâmetros do gzip usados para que eu possa verificar se a minha manipulação não atrapalhou o conteúdo dos arquivos?

    
por kevbonham 01.08.2017 / 23:09

2 respostas

2

O utilitário padrão Unix file fornece algumas informações básicas sobre um arquivo .gz, por exemplo:

$ file foo.gz
foo.gz: gzip compressed data, was "foo", from Unix, last modified: Tue Aug  1 14:19:21 2017, max compression

Como você pode ver, o cabeçalho armazena o nome do arquivo original, o SO no qual a compactação foi executada, o tempo de modificação e o nível de compactação. Observe que o nome do arquivo original pode ser diferente se você fizer algo como gzip -c tempfile > foo.gz . Nesse caso, o nome do arquivo original será tempfile . Ou pode até não existir se o gzip não obtiver um nome de arquivo original porque leu de um fluxo (por exemplo, tar czf foo.tar.gz somedir ).

Então, você provavelmente quer ter uma ideia de quais fatores podem ser diferentes primeiro. Eu não sei o quão importante tudo isso é para você, mas você pode olhar para RFC 1952 , que dá o arquivo formato. Você pode experimentar configurações diferentes e até editar hexadecimais alguns dos campos para corresponder ao originador, se necessário (por exemplo, sistema operacional diferente).

    
por 02.08.2017 / 00:00
2

Todos esses utilitários incluem algumas meta-informações que podem ser alteradas a cada execução, portanto, mesmo com arquivos idênticos, você obtém ZIPs ligeiramente diferentes (e, portanto, um MD5 diferente). Para comparar o conteúdo, você precisa descompactá-los.

Se você procurar GZIP na Wikipedia , você aprende que um arquivo GZip começa com um cabeçalho de 10 bytes , contendo um número mágico (1f 8b), um número de versão e um timestamp . Em outras palavras, cada execução tem a garantia de fornecer um arquivo diferente.

    
por 01.08.2017 / 23:41