我在(sav.zip)中有一个zip文件,我正在尝试为其设置密码:
zf = zipfile.ZipFile(“ sav.zip”)
zf.setpassword(“ 1234”)
但是...我收到TypeError:预期的字节数,得到了str
我的错在哪里
在文档中没有提到它,但是在Python 3上,密码应该是bytes,而不是str。所以:
zf.setpassword(b"1234")
Run Code Online (Sandbox Code Playgroud)
请注意,密码仅用于读取,不能用于写入!请参阅ZipFile.openPython 3中的文档字符串。
的ZipFile类可以读“PKZIP 2.0”加密,这不被认为是非常强(它已经已知弱点 [PDF])。这可能是为什么目前(在python 2.7.13和3.6中)未在Python中实现编写它们的原因。
注意: zip文件上的密码所提供的保护可能不是很牢固,具体取决于您要使用它的用途。攻击者可以例如在不知道密码的情况下替换 zipfile中受密码保护的条目!参见例如关于security.stackexchange的此答案。
注意2:例如winzip的最新版本可以使用AES加密压缩文件的内容。AFAIK,Python无法读取这些内容。
| 归档时间: |
|
| 查看次数: |
9384 次 |
| 最近记录: |