我正在尝试编写一个非常简单的暴力破解程序,以尝试破解受密码保护的zip文件。该文件的密码为“红色”。
import zipfile;
zfile = zipfile.ZipFile('password_archive.zip')
words = open('/usr/share/dict/words')
for word in words.readlines():
try:
password = word.strip('/n')
zfile.extractall(pwd=password)
print "Password found: "+ password
exit(0)
except Exception, e:
print e
安慰:
('Bad password for file', <zipfile.ZipInfo object at 0x1004ca500>)
('Bad password for file', <zipfile.ZipInfo object at 0x1004ca500>)
('Bad password for file', <zipfile.ZipInfo object at 0x1004ca500>)
('Bad password for file', <zipfile.ZipInfo object at 0x1004ca500>)
('Bad password for file', <zipfile.ZipInfo object at 0x1004ca500>)
('Bad password for file', <zipfile.ZipInfo object at 0x1004ca500>)
('Bad password for file', <zipfile.ZipInfo object at 0x1004ca500>)
('Bad password for file', <zipfile.ZipInfo object at 0x1004ca500>)
Password found: Abasgi
不太确定这是怎么回事。 Abasgi不是正确的密码,但是该脚本似乎由于输入错误的密码而失败,并且似乎找到了正确的密码。我想我已经在循环中的正确位置设置了password变量。
最佳答案
您需要更改:
password = word.strip('/n')
至:
password = word.strip("\n")
但是您可能还只是:
password = word.strip()
参见地带documenation:
返回带有前导和尾随字符的字符串的副本
删除。如果省略char或None,则空白字符为
删除。如果给定且不为None,则char必须为字符串;否则为false。那些角色
字符串中的字符串将从字符串的两端剥去
方法被调用。
并确保
red
在您的单词列表中Red
在我的话里,所以我必须添加:zfile.extractall(pwd=password.lower())
经过这些更改之后,一切似乎都很棒:
import zipfile
zfile = zipfile.ZipFile("file.zip")
words = open("/usr/share/dict/words")
for word in words.readlines():
try:
password = word.strip("\n")
zfile.extractall(pwd=password.lower())
print "Password found: "+ password
exit(0)
except Exception, e:
pass
关于python - 简单的暴力破解无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24847795/