Python解压缩AES-128加密文件

发布于 2021-01-29 14:55:54

由于ZipFile会引发Bad
Password错误,因此是否可以使用python直接解压缩AES-128加密文件。如果我使用7zip,它可以工作,因此密码是正确的,但是再次需要将7zip安装为依赖项。

我试过的

from ZipFile import ZipFile
zip = ZipFile('test.zip')
zip.extractall(pwd='password')

这将引发“错误密码”异常。

使用7zip检查文件

7z l -slt test.zip

返回:

Encrypted = +
Method = pkAES-128 Deflate
关注者
0
被浏览
102
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    Python标准库中的zipfile模块仅支持CRC32加密的zip文件(请参阅此处:http
    :
    //hg.python.org/cpython/file/71adf21421d9/Lib/zipfile.py#l420)。因此,无法避免某些第三方依赖。

    最简单的方法是仅安装7zip并7z使用subprocess标准库中的模块调用命令行实用程序:

    import subprocess
    subprocess.call(["7z", "x", "-ppassword", "test.zip"])
    

    另一个选择是python模块“
    PyLzma”,它也可以处理AES加密的7zip存档:https :
    //github.com/fancycode/pylzma。它不直接支持解密经典zip文件,但您可以使用其例程编写自己的解压缩器函数。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看