.zip格式和zip伪加密
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