ZIP是一種相當簡單的分別壓縮每個文件的存檔格式。分別壓縮文件允許不必讀取另外的數據而檢索獨立的文件;理論上,這種格式允許對不同的文件使用不同的算法。不管用何種方法,對這種格式的一個告誡是對於包含很多小文件的時候,存檔會明顯的比壓縮成一個獨立的文件(在類Unix系統中一個經典的例子是普通的tar.gz存檔是由一個使用gzip壓縮的TAR存檔組成)要大。
ZIP支持基於對稱加密系統的一個簡單的密碼,現在已知有嚴重的缺陷,已知明文攻擊,字典攻擊和暴力攻擊。ZIP也支持分卷壓縮。在近來一段時間,ZIP加入了包括新的壓縮和加密方法的新特征,不過這些新特征並沒有被許多工具所支持並且沒有得到廣泛應用。
ZIP文件是一種壓縮文件,可進行加密,也可不加密。而偽加密是在未加密的zip文件基礎上修改了它的壓縮源文件目錄區里的全局方式位標記的比特值,使得壓縮軟件打開它的時候識別為加密文件,提示輸入密碼, 而在這個時候,不管你用什么軟件對其進行密碼破解,都無法打開它!這就是它存在的意義!
zip偽加密破解方法
一、使用ZipCenOp.jar(需要java環境),在cmd中使用 java -jar ZipCenOp.jar r xxx.zip 成功后壓縮包可以直接打開
二、使用winRAR
進入工具,壓縮修復文件,修復完后壓縮包就可以打開了
上述兩種方法很多情況都可以用,但是有時不行,第三種方法可以應對各種zip偽加密
三、修改文件頭的加密標志位
這里我以墨者學院的密碼學加解密實訓(Zip偽加密)為例,用winhex打開壓縮包havekey.zip
未加密
第一個熒光標記條中:(壓縮源文件數據區初始位置)
504B0304(文件頭標記,4bytes)
1400(解壓文件所需pkware版本,2bytes)
0900(全局方式位標記,2bytes)軟件識別加密
第二個熒光標記條中:(壓縮源文件目錄區初始位置)
504B0102(目錄中文件文件頭標記,4bytes)
1E03(壓縮使用的pkware版本,2bytes)
1400(解壓文件所需pkware版本,2bytes)
0000(全局方式位標記,2bytes)壓縮軟件識別未加密標志
--這里我已將源文件的0900改為0000,修改后解壓KEY不再需要密碼,得到:mozh去掉中文1號e53ea929d去掉中文2號17f32e5去掉中文3號c8d9ce去掉中文4號9944d5去掉中文5號
墨者學院的KEY提交格式是mozhe開頭,故而提交mozhe53ea929d17f32e5c8d9ce9944d5