Python-zipfile:如何为zipfile设置密码?

2024-06-08 12:47:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我在(sav.zip)中有一个zipfile,我正在尝试为它设置密码:

zf = zipfile.ZipFile("sav.zip")

zf.setpassword("1234")

但是。。。我得到一个TypeError:expected Bytes,get str

我的错在哪里?


Tags: 密码getbyteszipexpectedzipfilesavstr
1条回答
网友
1楼 · 发布于 2024-06-08 12:47:26

文档中没有提到,但是在Python 3上,密码应该是bytes,而不是str。所以:

zf.setpassword(b"1234")

请注意,密码仅用于读取而不是写入!请参阅Python 3中ZipFile.open的docstring。

ZipFile类可以读取“pkzip 2.0”加密,这被认为不是很强(它有known weaknesses[pdf])。这可能是目前(从Python 2.7.13和3.6开始)没有用Python实现它们的原因。

注意:zipfile上的密码提供的保护可能不是很强,这取决于您想将其用于什么。攻击者可以例如在不知道密码的情况下替换zipfile中受密码保护的条目!参见security.stackexchange上的this answer

注2:更新版本的winzip可以使用AES加密压缩文件的内容。阿飞,Python看不懂这些。

相关问题 更多 >