我创建了一个带有rockyou
密码的zip文件,我试图提取所有文件。但我遇到了一些问题。无论我输入的密码如何,我都会得到:
('Bad password for file', <zipfile.ZipInfo object at 0x7f7928d14dc8>)
代码:
import zipfile
zfile = zipfile.ZipFile("./rockyou.zip")
pss = b"rockyou"
try:
zfile.extractall(pwd = pss)
except RuntimeError as e:
print(e)
zfile.close()
如果我传递一个字符串,我还有另一个问题:
TypeError: pwd: expected bytes, got <class 'str'>
我也试过了:
pss = str.encode("rockyou")
和
pss = bytes(str.encode("rockyou"))
和
pss = bytes("rockyou".encode("UTF-8"))
有人帮忙吗?
答案 0 :(得分:5)
好吧,我找到了一种解决方法,对我有用,可能不那么漂亮......
zFile.extractall(pwd = 'PASSWORD'.encode('cp850','replace'))
答案 1 :(得分:4)
我一直在关注暴力的python书,在第一章中你制作了一个迷你脚本来解锁加密的zip文件。对我有用的是添加一个b
所以字符串将以字节为单位:
import zipfile
zFile = zipfile.ZipFile("evil.zip")
zFile.extractall(pwd=b'secret') #this is what i'm talking about