练手项目
继昨天接着学习,这一次,练手代码是穷举法破解ZIP文件密码。所谓穷举法,就是一个一个的试。
项目代码
此次项目的代码全部在下方
# -*- coding: utf-8 -*-
# @Time : 2017/11/15 12:44
# @Author : Darker
# @Site : www.liangz.org
# @File : zipfiletest.py
# @Software: PyCharm
import zipfile
import threading
def extractFile(zFile,password):
try:
zFile.extractall(pwd=password)
# print(u"密码:" + password)
return password
except:
pass
def main():
zFile = zipfile.ZipFile('crypt.zip')
pwdFile = open('dictionary.txt')
for line in pwdFile.readlines():
password = line.strip('\n')
# t = threading.Thread(target=extractFile, args=(zFile,password)) #此处是多线程的代码,原书自带
# t.start()
guess = extractFile(zFile, password)
if guess:
print(u'密码 : '+ password)
return
else:
print(u"找不到密码")
# return #此处的return如果不注释掉,会出问题
if __name__ == '__main__':
main()
上方的代码,我自己实验的时候有点儿小瑕疵。我实验时选的文件密码是 www.liangz.org
,密码字典文件是:
11111111111
2222222222222
2312312
1235345342
1231442321
retsdasf
www.liangz.org
2ewdaffa
234fsadf
12312312
实验结果为:
也就是说,如果前面密码不对,提示信息会打印出来,当然,你也可以修改代码,不让提示信息打印出来。
注意事项
另外,还有一点需要注意。这是我自己实验这个代码时的教训。
就是自己写的脚本的命名,千万不要与Python的模块名字相同,不然,会出现下方这种情况。
E:\Projects\Python\20171114
λ python zipfile.py
Traceback (most recent call last):
File "zipfile.py", line 41, in <module>
main()
File "zipfile.py", line 22, in main
zFile = zipfile.ZipFile('crypt.zip', 'r')
AttributeError: 'module' object has no attribute 'ZipFile'
我就是因为把自己写的脚本命名成zipfile.py,结果,我上网查找错误,查了半个小时。因为Python有zipfile模块,名字就是zipfile.py。希望能注意
最新评论
这个软件有bug的,客户端windows有些键不能用如逗号、句号
没有收到邮件通知
我的评论通知貌似坏掉了,定位一下问题
测试一下重新部署后的邮件功能
居然看到自己公司的MIB库,诚惶诚恐
那可能是RobotFramework-ride的版本问题。我装的1.7.4.2,有这个限制。我有空再尝试下旧版本吧,感谢回复。
你好!我在python2.7中安装RobotFramework-ride的时候提示wxPython的版本最高是2.18.12,用pip下载的wxPython版本是4.10,而且我在那个路径下没有找到2
真的太好了,太感谢了,在bilibili和CSDN上都找遍了,终于在你这里找到了