Primero, no hay una codificación estándar para las letras que no son ASCII y varios caracteres no se pueden imprimir. Como mínimo, necesita un editor hexadecimal para ver la información allí. Si desea descifrar el formato de datos, consulte el APPNOTE.TXT .
Por ejemplo, si simplemente hago un archivo zip de un archivo en blanco llamado aaa.zip y lo cifro con la contraseña abcd
e imprimo el archivo con la codificación ISO-8859-1, obtengo:
$ cat new.zip
PK
)¦D
aaa.txtUT khS{mhSux
õÊuPfC³[é±
PK
)¦D
¤aaa.txtUTkhSux
õPKM
Si realmente imprimo en 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 columna de la izquierda es el número de línea en hexadecimal, las columnas del medio contienen los datos con 16 bytes por fila (un byte son dos caracteres hexadecimales), y la columna de la derecha es la codificación ASCII del carácter ASCII correspondiente cuando está imprimible - note que muchos no son imprimibles y están representados por un .
). Como puede ver, hay muchos caracteres que no aparecen cuando los imprime en ISO-8859-1.
En segundo lugar, aunque el cifrado PKZIP es bastante débil, todavía introduce algo de aleatoriedad. Por ejemplo, si elimino el archivo zip y vuelvo a cifrar los mismos datos en un nuevo archivo zip del mismo nombre con la misma contraseña, obtendré:
$ 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...].....|
Observe que la línea con 00000020
y 00000040
son diferentes.