zipfile:如何为 Zipfile 设置密码?
zipfile: how to set a password for a Zipfile?
我在 (sav.zip) 中有一个 zip 文件,我正在尝试为其设置密码:
zf = zipfile.ZipFile("sav.zip")
zf.setpassword("1234")
但我得到了 TypeError: expected Bytes, got str
.
我的错误在哪里?
文档中没有提到,但是在Python3上,密码应该是bytes
,而不是str
。所以:
zf.setpassword(b"1234")
注意密码是只用于阅读,不能写!请参阅 Python 中 ZipFile.open
的文档字符串 3.
ZipFile
class可以读取"pkzip 2.0"加密,算不上很强(有known weaknesses[pdf])。这可能是 编写 它们目前(从 Python 2.7.13 和 3.6 开始)未在 Python 中实现的原因。
注意: zip 文件的密码提供的保护可能不是很强,具体取决于您要将其用于什么目的。攻击者可以,例如替换压缩文件中受密码保护的条目不知道密码!参见例如this answer 在 security.stackexchange。
注 2: 例如,更新版本winzip 可以使用 AES 来加密压缩文件的内容。据我所知,Python 无法阅读这些内容。
我在 (sav.zip) 中有一个 zip 文件,我正在尝试为其设置密码:
zf = zipfile.ZipFile("sav.zip")
zf.setpassword("1234")
但我得到了 TypeError: expected Bytes, got str
.
我的错误在哪里?
文档中没有提到,但是在Python3上,密码应该是bytes
,而不是str
。所以:
zf.setpassword(b"1234")
注意密码是只用于阅读,不能写!请参阅 Python 中 ZipFile.open
的文档字符串 3.
ZipFile
class可以读取"pkzip 2.0"加密,算不上很强(有known weaknesses[pdf])。这可能是 编写 它们目前(从 Python 2.7.13 和 3.6 开始)未在 Python 中实现的原因。
注意: zip 文件的密码提供的保护可能不是很强,具体取决于您要将其用于什么目的。攻击者可以,例如替换压缩文件中受密码保护的条目不知道密码!参见例如this answer 在 security.stackexchange。
注 2: 例如,更新版本winzip 可以使用 AES 来加密压缩文件的内容。据我所知,Python 无法阅读这些内容。