首页 > 解决方案 > 在python3.9中提取zipfile时出现错误'NotImplementedError(“不支持该压缩方法”)'

问题描述

我已经阅读了有关 zip 文件的 Python 文档并观看了几个视频,但一切都不起作用。我使用的是 Kali Linux,因此密码必须以字节编码。

这是我尝试过的代码:

import zipfile
import string
import traceback

def try_function(zip, pwd):
    try:
        zip.extractall(pwd=pwd.encode())
        print("Yes")
    except TypeError:
        print("No")


z = zipfile.ZipFile("test.txt.zip")
pwd_local = "abc"

if __name__ == '__main__':
    try_function(z, pwd_local)

但我总是得到同样的错误:

Traceback (most recent call last):
  File "ZipWorker.py", line 22, in <module>
    try_function(z, pwd_list)
  File "ZipWorker.py", line 11, in crack
    zip.extractall(pwd.encode())
  File "/usr/lib/python3.9/zipfile.py", line 1633, in extractall
    self._extract_member(zipinfo, path, pwd)
  File "/usr/lib/python3.9/zipfile.py", line 1686, in _ 
extract_member
    with self.open(member, pwd=pwd) as source, \
  File "/usr/lib/python3.9/zipfile.py", line 1559, in open
    return ZipExtFile(zef_file, mode, zinfo, pwd, True)
  File "/usr/lib/python3.9/zipfile.py", line 797, in __init__
    self._decompressor = _get_decompressor(self._compress_type)
  File "/usr/lib/python3.9/zipfile.py", line 698, in 
_get_decompressor
    _check_compression(compress_type)
  File "/usr/lib/python3.9/zipfile.py", line 678, in 
_check_compression
    raise NotImplementedError("That compression method is not 
supported")
  NotImplementedError: That compression method is not supported

有谁知道如何做到这一点?我正在使用python3.9。

标签: pythonpython-3.xzipfile

解决方案


所以我终于明白了,为什么上面的代码不起作用。
当您使用例如 7zip 创建 zip 文件时,此 zip 文件将被加密。
但是加密不是以字节为单位的,而是在哈希中加密的:AES-256 或 ZipCrypto。


推荐阅读