Innanzitutto, non esiste una codifica standard per le lettere non ASCII e diversi caratteri non sono stampabili. Per lo meno è necessario un editor esadecimale per visualizzare le informazioni lì. Se si desidera decifrare il formato dei dati, consultare il APPNOTE.TXT .
Ad esempio, se faccio semplicemente un file zip di un file vuoto chiamato aaa.zip e criptato con password abcd
e stampo il file nella codifica ISO-8859-1, ottengo:
$ cat new.zip
PK
)¦D
aaa.txtUT khS{mhSux
õÊuPfC³[é±
PK
)¦D
¤aaa.txtUTkhSux
õPKM
Se in realtà stampo in hexeditor:
$ objdump -C new.zip
00000000 50 4b 03 04 0a 00 09 00 00 00 29 07 a6 44 00 00 |PK........)..D..|
00000010 00 00 0c 00 00 00 00 00 00 00 07 00 1c 00 61 61 |..............aa|
00000020 61 2e 74 78 74 55 54 09 00 03 ad 6b 68 53 7b 6d |a.txtUT....khS{m|
00000030 68 53 75 78 0b 00 01 04 f5 01 00 00 04 14 00 00 |hSux............|
00000040 00 ca 75 50 66 43 b3 5b e9 ad b1 97 9d 50 4b 07 |..uPfC.[.....PK.|
00000050 08 00 00 00 00 0c 00 00 00 00 00 00 00 50 4b 01 |.............PK.|
00000060 02 1e 03 0a 00 09 00 00 00 29 07 a6 44 00 00 00 |.........)..D...|
00000070 00 0c 00 00 00 00 00 00 00 07 00 18 00 00 00 00 |................|
00000080 00 00 00 00 00 a4 81 00 00 00 00 61 61 61 2e 74 |...........aaa.t|
00000090 78 74 55 54 05 00 03 ad 6b 68 53 75 78 0b 00 01 |xtUT....khSux...|
000000a0 04 f5 01 00 00 04 14 00 00 00 50 4b 05 06 00 00 |..........PK....|
000000b0 00 00 01 00 01 00 4d 00 00 00 5d 00 00 00 00 00 |......M...].....|
La colonna di sinistra è il numero di riga in esadecimale, le colonne centrali contengono i dati con 16 byte in una riga (un byte è di due caratteri esadecimali) e la colonna di destra è la codifica ASCII del carattere ASCII corrispondente quando è stampabile - nota che molti non sono stampabili e sono rappresentati da un .
). Come puoi vedere ci sono molti personaggi che non appaiono quando li stampi in ISO-8859-1.
In secondo luogo, anche se la crittografia PKZIP è piuttosto debole, presenta comunque una certa casualità. Ad esempio, se elimino il file zip e reencrypt gli stessi dati in un nuovo file zip con lo stesso nome con la stessa password, ottengo:
$ hexdump -C new.zip
00000000 50 4b 03 04 0a 00 09 00 00 00 29 07 a6 44 00 00 |PK........)..D..|
00000010 00 00 0c 00 00 00 00 00 00 00 07 00 1c 00 61 61 |..............aa|
00000020 61 2e 74 78 74 55 54 09 00 03 ad 6b 68 53 56 6f |a.txtUT....khSVo|
00000030 68 53 75 78 0b 00 01 04 f5 01 00 00 04 14 00 00 |hSux............|
00000040 00 e4 1b 8a 36 3b 3e a9 99 1b 5b 2d 38 50 4b 07 |....6;>...[-8PK.|
00000050 08 00 00 00 00 0c 00 00 00 00 00 00 00 50 4b 01 |.............PK.|
00000060 02 1e 03 0a 00 09 00 00 00 29 07 a6 44 00 00 00 |.........)..D...|
00000070 00 0c 00 00 00 00 00 00 00 07 00 18 00 00 00 00 |................|
00000080 00 00 00 00 00 a4 81 00 00 00 00 61 61 61 2e 74 |...........aaa.t|
00000090 78 74 55 54 05 00 03 ad 6b 68 53 75 78 0b 00 01 |xtUT....khSux...|
000000a0 04 f5 01 00 00 04 14 00 00 00 50 4b 05 06 00 00 |..........PK....|
000000b0 00 00 01 00 01 00 4d 00 00 00 5d 00 00 00 00 00 |......M...].....|
Nota la linea con 00000020
e 00000040
sono diversi.