ZIP文件的組成:
壓縮源文件數據區+壓縮源文件目錄區+壓縮源文件目錄結束標志
壓縮源文件數據區
50 4B 03 04:這是頭文件標記(0x04034b50)
14 00:解壓文件所需 pkware 版本
00 00:全局方式位標記(有無加密)
08 00:壓縮方式
5A 7E:最后修改文件時間
F7 46:最后修改文件日期
16 B5 80 14:CRC-32校驗(1480B516)
19 00 00 00:壓縮后尺寸(25)
17 00 00 00:未壓縮尺寸(23)
07 00:文件名長度
00 00:擴展記錄長度
6B65792E7478740BCECC750E71ABCE48CDC9C95728CECC2DC849AD284DAD0500
壓縮源文件目錄區:
50 4B 01 02:目錄中文件文件頭標記(0x02014b50)
3F 00:壓縮使用的 pkware 版本
14 00:解壓文件所需 pkware 版本
00 00:全局方式位標記(有無加密,這個更改這里進行偽加密,改為09 00打開就會提示有密碼了)
08 00:壓縮方式
5A 7E:最后修改文件時間
F7 46:最后修改文件日期
16 B5 80 14:CRC-32校驗(1480B516)
19 00 00 00:壓縮后尺寸(25)
17 00 00 00:未壓縮尺寸(23)
07 00:文件名長度
24 00:擴展字段長度
00 00:文件注釋長度
00 00:磁盤開始號
00 00:內部文件屬性
20 00 00 00:外部文件屬性
00 00 00 00:局部頭部偏移量
6B65792E7478740A00200000000000010018006558F04A1CC5D001BDEBDD3B1CC5D001BDEBDD3B1CC5D001
壓縮源文件目錄結束標志:
50 4B 05 06:目錄結束標記
00 00:當前磁盤編號
00 00:目錄區開始磁盤編號
01 00:本磁盤上紀錄總數
01 00:目錄區中紀錄總數
59 00 00 00:目錄區尺寸大小
3E 00 00 00:目錄區對第一張磁盤的偏移量
00 00: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