Il formato del file zip è definito da PKWARE. È possibile trovare le specifiche del file here.
Nella parte superiore si trova la specifica intestazione:
A. intestazione del file locale:
local file header signature 4 bytes (0x04034b50)
version needed to extract 2 bytes
general purpose bit flag 2 bytes
compression method 2 bytes
last mod file time 2 bytes
last mod file date 2 bytes
crc-32 4 bytes
compressed size 4 bytes
uncompressed size 4 bytes
file name length 2 bytes
extra field length 2 bytes
file name (variable size)
extra field (variable size)
Da questo si può vedere che i primi 4 byte di intestazione deve essere la firma del file che dovrebbe essere il valore esadecimale 0x04034b50. L'ordine dei byte nel file è il contrario - PKWARE specifica che "Tutti i valori sono memorizzati nell'ordine byte little-endian se non diversamente specificato.", Quindi se si utilizza un editor esadecimale per visualizzare il file, vedrai 50 4b 03 04 come i primi 4 byte.
È possibile utilizzare questo per verificare se il file è un file zip. Se apri il file nel blocco note, noterai che i primi due byte (50 e 4b) sono i caratteri ASCII PK.
fonte
2009-12-11 10:18:19
+1 Grandi informazioni. Ma idealmente, sarebbe diverso da un fornitore all'altro, il che significa l'algoritmo di compressione. –
http://en.wikipedia.org/wiki/ZIP_(file_format) –
Il formato del file ZIP non varia da un venditore all'altro. È stato definito in origine da PKWARE, ma molti altri fornitori ora supportano lo stesso formato di compressione. Il formato specifica il PK nell'intestazione, quindi anche altri fornitori includeranno ancora questa parte dell'intestazione. Diversi formati di file come arc, 7z, lhz, gzip ecc avranno specifiche differenti e intestazioni diverse, ma un file zip avrà sempre questo nell'intestazione. –