【发布时间】:2020-04-16 01:37:14
【问题描述】:
我正在尝试一个简单的代码:
from zipfile import ZipFile
password = '1sS34nConn3ryTh3B3st007?'
zip_file = 'file.zip'
with ZipFile(zip_file) as zf:
zf.extractall(pwd=bytes(password,'utf-8'))
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
File "/usr/lib64/python3.6/zipfile.py", line 1524, in extractall
self._extract_member(zipinfo, path, pwd)
File "/usr/lib64/python3.6/zipfile.py", line 1577, in _extract_member
with self.open(member, pwd=pwd) as source, \
File "/usr/lib64/python3.6/zipfile.py", line 1446, in open
raise RuntimeError("Bad password for file %r" % name)
RuntimeError: Bad password for file <ZipInfo filename='file.csv' compress_type=99 file_size=272074 compress_size=60230>
当我使用 7z 或 winrar 在 Windows 上提取它时,它工作得非常好。 py7zr 也会报错。
【问题讨论】:
-
zip 文件使用什么加密系统?较新的 Zip 文件使用旧 zip 库无法处理的 AES-256。
-
我不确定,有没有办法从文件中找出来?另外,如果它是我假设的 AES-256,那么解压缩它的 python 库和代码应该是什么?
标签: python-3.x extract zipfile