Gzip bir .tar'a bütünlük / crc denetimi ekliyor mu?


12

Komutları çalıştırıyorum:

tar -cf myArchive.tar myDirectory/
gzip myArchive.tar

sonra dosyayı bir sürü güvenilmez ortam üzerine kopyalarım ve daha sonra kullanarak paketini açarım:

tar -xzf myArchive.tar.gz

Katran topunu sıkıştırdığım gerçeği, herhangi bir şekilde ambalajsız içeriğin bütünlüğünü veya en azından bir CRC'sini garanti edecek mi?

Yanıtlar:


15

tarkendisi daha sonraki karşılaştırma için bir sağlama toplamı yazmaz. Eğer varsa arşiv o özelliğe sahip olabilir.gziptar

tarkullanır compress. Eğer kullanırsanız -Zbayrağını arşivi oluşturulurken tarkullanacağı compressokuma veya arşiv yazarken programı. Gönderen gzipman:

Standart sıkıştırma formatı, tutarlılık denetimlerine izin verecek şekilde tasarlanmamıştır.

Ancak, -zparametreyi kullanabilirsiniz . Sonra tararşivi okur ve yazar gzip. Ve gzipbir crc sağlama toplamı yazıyor. Bu sağlama toplamını görüntülemek için şu komutu kullanın:

$ gzip -lv archive.tar.gz
method  crc     date  time           compressed        uncompressed  ratio uncompressed_name
defla 3f641c33 Sep 25 14:01               24270              122880  80.3% archive.tar

Gönderen gzipman:

İlk iki formatı kullanırken ( gzip veya zip kastedilmektedir ), gunzip 32 bitlik bir CRC'yi kontrol eder.


5

Evet, gzip dosya biçimi , arşivin bozuk olup olmadığını algılamak için kullanılabilecek bir CRC-32 sağlama toplamı içerir.

Tabii ki, sağlama toplamı gzip'in arşivin bozuk olduğunu söylemesine izin verirken, aslında arşiv içindeki verileri kurtarmanıza yardımcı olacak hiçbir şey yapmaz. Bu nedenle, çoğunlukla web'den yeni indirdiğiniz bir arşivin gerçekten doğru bir şekilde indirildiğini kontrol etmek gibi şeyler için yararlıdır.

Arşivlerinizi güvenilir olmayan bir medyada depolamak veya iletmekten gerçekten endişeleniyorsanız , hata tespitine ek olarak aslında hata düzeltmesi sağlayan par gibi bir arşiv biçimi kullanmayı düşünebilirsiniz . Tabii ki, bu formatların aşağı tarafı, hata düzeltmesi için gereken fazlalığın mutlaka dosya boyutunu bir miktar artırmasıdır.


4

tarbir bütünlük denetimi yok. Misal:

$ echo JJJJJJJJJJJJJJJJJJ > b
$ tar cvf a.tar b
$ sed -i s/JJJJJJJJJJJJJJJJJJ/tttttttttttttttttt/g a.tar
$ tar xvf a.tar
$ cat b

tttttttttttttttttt

Bkz. a.tarArşiv içeriği değişti, bu yüzden dosya btamamen farklı içeriğe sahipti, ancak tar bunu fark etmedi. Bu, her iki katran formatına sahip tar-1.28 (en son) dahil olmak üzere tüm katranlar için geçerlidir --format=gnu --format=posix. paxKomutu (alternatif katran okuyucusu) pax -r < a.tarayrıca arşiv değişiklikler fark etmez.


2
OP farkında (ya da en azından şüpheli) olarak görünüyor tar(en azından olmadan-z bütünlük denetimi yapmaz seçeneği). Ayrıca, kabul edilen cevap bunu belirtir. Soru şudur: gzip(veya -zseçeneğin kullanımı ) bütünlük denetimi ekliyor mu?
G-Man

Doğru G-Man, gzip kısmını da içeriyorsa ve gzip'in içeriğin değiştiğini algıladığını gösteriyorsa, bu iyi bir yanıt olabilir.
Aksel Willgert

2

Tar paketi açarken hata bulursa, bir mesaj yazdırır ve sıfırdan farklı bir çıkış değeriyle çıkar. Bu davranış, tar dosyası oluşturulduktan sonra kullanılan sıkıştırma algoritmasından bağımsızdır.

Dosyanın hedefe güvenilir olmayan bir bağlantı üzerinden başarıyla gönderildiğini doğrulamak istiyorsanız, göndermeden önce dosyanın bir md5 toplamını oluşturun ve alımdan sonra md5 toplamını doğrulayın.


im sadece paketlenmemiş içeriğin bütünlüğü ile ilgileniyorsa. md5 katran üzerinde açma katranı sırasında kontrol katran ile karşılaştırıldığında ekstra bir şey eklemiyor mu?
Aksel Willgert

Katran arşivindeki içeriğin bütünlüğü tarkendi başına halledilir . Gerekirse ek bir katman ekleyebilirsiniz: tar dosyasının bütünlüğü doğrulanırsa, tar arşivindeki içerik de TAMAM olur. Ancak tüm bunlar, verileri ilk etapta aktarmak için kullanılan protokol tarafından ele alınmalıdır.
Ocak

-1

PKZip paketi (win / dos), hasarlı arşivlerden dosyaları kurtarabilen PKZipFix adlı bir programla birlikte gelir. Geçmişte bu yardımcı programı kullandım, sıkıştırmasını açmayacak orta derecede hasar görmüş arşivlerden dosyaları kurtarabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.