首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python3中解压缩使用PKZIP以外的算法加密的文件?

如何在Python3中解压缩使用PKZIP以外的算法加密的文件?
EN

Stack Overflow用户
提问于 2018-05-04 07:13:48
回答 1查看 1.4K关注 0票数 4

我想用Python 3解压缩受密码保护的档案,我知道密码,但在zip标准中似乎有几种加密算法。

首先,我使用标准Ubuntu的archive 3.16.5创建一个zip归档,使用密码"1“。然后运行以下代码:

代码语言:javascript
复制
import zipfile

zip_file = zipfile.ZipFile('archive.zip')
zip_file.extractall(pwd=b'1')

因此,我得到了RuntimeError: ('Bad password for file', <ZipInfo filename='contents.txt' compress_type=99 filemode='-rw-rw-r--' external_attr=0x8020 file_size=40 compress_size=60>)

当我运行Archive进行解压时,它可以正常工作。但是,一旦我尝试了unzip,它就无法完成以下工作:

代码语言:javascript
复制
$ unzip -P 1 archive.zip 
Archive:  archive.zip
    skipping: contents.txt            need PK compat. v5.1 (can do v4.6)

据我所知,问题是unzip使用了PKZIP算法,而libarchive广泛使用的7zip和Archive通常更喜欢AES加密(并且有很好的安全理由)。

那么,如何选择使用Python解压缩的算法呢?或者,我应该不关心zip格式本身,找到任何AES解密器,然后以某种方式将其连接到unzip

我考虑过在bash调用中使用7zip,但是它会给与操作系统的交互带来更多的问题(如果执行机器没有这样的交互怎么办?)我还查找了Python3的libarchive端口(即python3-libarchive-c包)--它是与C实现分开开发的,目前不支持加密/解密。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-15 13:52:03

您可以使用拉链库解压缩AES加密的压缩文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50169242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档