Python 的 zipfile 库无法提取受密码保护的文件

Python's zipfile library can't extract password protected file

由于某种原因,Python 的 zipfile 库无法提取 this password-protected zipfile archive 中的文件。这是我使用的代码:

import zipfile

zip_filename = 'extract_public_2018_20201006094007483_71129_20201001-20201006Texas.zip'

zipfile_password = b'&CkN52mKji3R8^4aI#7Z'

with zipfile.ZipFile(zip_filename) as myzip:
    myzip.extractall(pwd=zipfile_password)

这是我得到的错误:NotImplementedError: That compression method is not supported

我深挖了一点,发现这个压缩包里面的文件的压缩方式是99。我在哪里可以找到这个压缩方式到底是什么?这是否意味着我无法使用 Python 的 zipfile 库解压缩此文件?

我正在使用 Python 3.8.

PKWare's appnote 表示 99 是:

99 - AE-x encryption marker (see APPENDIX E)

...

APPENDIX E - AE-x encryption marker


E.1 AE-x defines an alternate password-based encryption method used in ZIP files that is based on a file encryption utility developed by Dr. Brian Gladman. Information on Dr. Gladman's method is available at

http://www.gladman.me.uk/cryptography_technology/fileencrypt/

我猜没有图书馆可以帮助解决这个问题。您可能无法使用 7z 或 PKZIP。