python - 在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。
解决方案
所以我终于明白了,为什么上面的代码不起作用。
当您使用例如 7zip 创建 zip 文件时,此 zip 文件将被加密。
但是加密不是以字节为单位的,而是在哈希中加密的:AES-256 或 ZipCrypto。
推荐阅读
- monitoring - Can I use new relic images in dockerfile to monitor AWS ECS
- r - 用相邻行的值替换 NA 值
- sql - SQL Bigquery从交易表中计算重复客户
- python - 修改图表以绘制隐藏单元激活
- python - 如何从某个点重新开始?
- python - 修改 inception-v3 的输入通道数时出错
- audio - Raspberry 蓝牙音频和 Gpio 控制
- python - 如何使用excel中的目录名列表结合原始路径复制到另一个目的地。通过使用 Python?
- node.js - Docker build - npm 版本与 lockfileVersion@1 不兼容
- javascript - Vue JS - 单击复选框然后单击按钮时如何获取用户ID