ZipFile.setpassword 无效
时间: 2023-07-15 12:14:50 浏览: 166
ZipFile.dll 压缩解压第三方类库
如果你使用 `ZipFile.setpassword` 方法设置的密码无效,可能是因为你设置的密码与压缩文件的密码不匹配。请确保你设置的密码与压缩文件的密码一致。
另外,如果压缩文件使用的是加密算法 AES-256,则需要使用 PyCryptoDome 或 cryptography 等第三方库来支持解密。你需要安装其中之一,并使用 `ZipFile.setencryption` 方法设置解密器,然后才能使用 `ZipFile.setpassword` 方法设置密码。
以下是使用 PyCryptoDome 来解密 AES-256 加密的压缩文件的示例代码:
```python
from zipfile import ZipFile
from Crypto.Cipher import AES
# 打开加密的压缩文件
with ZipFile('encrypted.zip') as zf:
# 设置解密器
key = b'mysecretpassword'
iv = b'1234567890123456'
cipher = AES.new(key, AES.MODE_CBC, iv)
zf.setencryption(ZipFile.ZIP_AES, cipher=cipher)
# 设置密码
password = b'mysecretpassword'
zf.setpassword(password)
# 解压文件
zf.extractall('extracted')
```
这里使用了一个固定的密钥和向量来创建解密器,实际应用中你应该使用更安全的方法来生成密钥和向量。
阅读全文