7z 压缩时使用多个密码
今天在命令行中使用7z进行压缩和解压缩时遇到一个有趣的事情。
压缩
用7z压缩时使用以下命令:
7z a 123.zip 123/
后来发现,将文件添加到压缩文件时可以加上密码,像这样:
7z a 123.zip 123/ -p123
这样在解压时就需要输入密码123
但是
每使用7z添加一次文件到压缩包,就可以增加一次密码
像这样:
7z a x.zip 123.zip -p123
7z a x.zip qqq.zip -pqqq
7a a x.zip ddd.zip -pddd
于是,这个压缩包里的三个文件就分别对应了三个密码。。。非常的简单~
解压
虽然很简单就可以进行压缩,但是解压的时候,我们就会发现问题了。
先试试双击打开
可以看到有这些文件
接下来提取到当前文件夹
先使用123
这个密码
然后可以发现,出错了
也就是只有123.zip
这个文件的解压密码是正确的
再看一下文件夹里
可以看到除了123.zip
这个文件大小不为0,另外两个文件大小都为0
123.zip
这个文件可以解压
但是没有办法用7z打开这两个大小为0的压缩包
用windows11文件管理器自带的功能可以打开这个zip文件,但是里面啥也没有。
接下来试试用另一个密码ddd
然后可以看到提示信息
风水轮流转,这下轮到这123.zip
和qqq.zip
解压错误了。
看下文件管理器
可以发现,ddd.zip
对应的密码就是ddd
,所以它被正确解压,而其他两个文件没有。
有什么用呢
大概。。。可以用来限制把某些文件解压到本地,但是可以看到,解压错误的文件还是会被创建,只是大小为0,并且没有内容。
大致可以实现,让几个拥有不同密码的人,都只能解压文件的相应部分,而无法获得另外的部分。
如果有需要共享的文件,再添加文件进入压缩包时不带-p
参数即可。
7z a 工资.zip 小李的/ -pxiaoli
7z a 工资.zip 小王的/ -pxiaowang
7z a 工资.zip 老板的/
可以看到有这些文件
如果我是小李
我就没办法解压小王的文件
但是我可以获得共享的文件
所以,或许只需要在群里发送一个压缩包,让大家各取所需即可~~~