gpt4 book ai didi

python - 无法使用 python zipfile 库解压缩带有密码的 .zip 文件

转载 作者:行者123 更新时间:2023-12-03 17:11:54 25 4
gpt4 key购买 nike

我使用 Gnome Archive Manager (Ubuntu OS) 创建了一个 zip 文件。我用密码创建了 zip 文件,我正在尝试使用 zipfile 解压缩它。蟒库:

import zipfile

file_name = '/home/mahmoud/Desktop/tester.zip'
pswd = 'pass'

with zipfile.ZipFile(file_name, 'r') as zf:
zf.printdir()
zf.extractall(path='/home/mahmoud/Desktop/testfolder', pwd = bytes(pswd, 'utf-8'))

当我运行此代码时,出现以下错误,并且我非常确定密码正确。错误是:
File "/home/mahmoud/anaconda3/lib/python3.7/zipfile.py", line 1538, in open
raise RuntimeError("Bad password for file %r" % name)

RuntimeError: Bad password for file <ZipInfo filename='NegSkew.pdf' compress_type=99 filemode='-rw-rw-r--' external_attr=0x8020 file_size=233252 compress_size=199427>

如何解压缩文件?

最佳答案

zipfile库不支持 AES 加密(compress_type=99)并且只支持 CRC-32,如 _ZipDecrypter 中所述。代码( https://hg.python.org/cpython/file/a80c14ace927/Lib/zipfile.py#l508 )。 _ZipDecrypter在 ZipFile.open 中引发特定 RuntimeError 之前调用和使用,可以从 extractall 追踪.
您可以使用 pyzipper库 ( https://github.com/danifus/pyzipper ) 而不是 zipfile解压缩文件:

import pyzipper

file_name = '/home/mahmoud/Desktop/tester.zip'
pswd = 'pass'

with pyzipper.AESZipFile(file_name) as zf:
zf.extractall(path='/home/mahmoud/Desktop/testfolder', pwd = bytes(pswd, 'utf-8'))

关于python - 无法使用 python zipfile 库解压缩带有密码的 .zip 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62107160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com