ZIP文件的組成:
壓縮源文件數據區+壓縮源文件目錄區+壓縮源文件目錄結束標志
壓縮源文件數據區
1、自己簡單做一個zip壓縮包,正常的壓縮,壓縮包內有三個TXT文檔。
這時候的壓縮包可以正常的解壓,不用輸入密碼
2、將這個正常的壓縮包放進winhex里面,看看的是什么效果
第一個紅框的地方是壓縮源文件數據區:
50 4B 03 04 是zip頭文件標記;
14 00 是解壓文件所需要的PK版本;
00 00 是全局方式標記(看是否加密,可以就看第一個00,第二字節00可以忽略。00表示無加密,01表示有加密。不過只要是偶數就是無加密,例如00,02,04等,奇數就是有加密,例如01,03,09等)
接下來的三個紅框就是壓縮文件目錄區,分別為三個文件:
50 4B 01 02 是目錄中文件頭標記
14 00 壓縮使用的 pkware 版本
14 00 解壓文件所需 pkware 版本
00 00 是全局方式標記(看是否加密,可以就看第一個00,第二字節00可以忽略。00表示無加密,01表示有加密。不過只要是偶數就是無加密,例如00,02,04等,奇數就是有加密,例如01,03,09等)
最后那個紅框就是壓縮源文件目錄結束標志。
接下來制作一個偽加密包
用winHex打開壓縮包
修改如下數據,把1和2進行偽加密
保存后打開壓縮包
發現1和2后面加上了一個星號,表示加密文件。
我們解壓時,發現需要輸入密碼了。
這就是偽密碼了吧,若是遇到壓縮包解壓需要密碼的時候先放在WINHEX中看看是不是偽加密,只要對比兩部分的全局方式位標記,若第二部分是09 00,那就把09修改為00就好
或者
使用ZipCenOp去偽加密,解密命令java -jar ZipCenOp.jar r xxxx.zip 加密命令java -jar ZipCenOp.jar e xxxx.zip