python暴力破解程序
python编写生成字典文件程序,在这个程序中使用到一个新的模块itertools,这个模块是python内置的,使用简单功能强大。
- itertools 常用的函数-最基础的3个无穷循环器函数
1.count()函数——产生递增序列,例如:count(1,5)产生从1开始递增的序列,每次递增5,即1,6,11,16,21,26....
2.cycle()函数——重复序列中的元素,例如:cycle('hello')将序列中的函数重复,即h,e,l,l,o,h,e,l,l,o,h......
3.repeat()函数——重复元素,构成无穷循环器,例如:repeat(100),即100,100,100,100......
- 无穷循环器的组合操作函数
product()函数。获得多个无穷循环器的笛卡尔积,例如product('xyz',[0,1]),得到结果就是:x0,y0,z0,x1,y1,z1
permutations('abcd',2)函数,从abcd中挑选2个元素例如ab,cd,并将结果排序,返回作为新的无穷循环器,这些元素的组合是没有顺序的,可以同时生成cd,dc。
combination('abcd',2)函数,从abcd中挑选2个元素例如ab,cd,并将结果排序,返回作为新的无穷循环器,这些元素的组合是有顺序的,例如c,d只可以生成cd。
- 完整代码
#导入itertools模块
import itertools
#指定生成字符文件的字符,这里使用所有的数字和字母(不考虑大小写和特殊字符)
words = "1234568790abcdefghijklmnopqrstuvwxyz"
#生成2位的密码,实际上一般的密码有至少6位
temp =itertools.permutations(words,2)
#打开用于存储结果的文件
passwords = open("dic.txt","a")
#利用循环写入结果
for i in temp:
passwords.write("".join(i))
passwords.write("".join("\n"))
#关闭文件
passwords.close()
文章知识来自李华峰老师编著的《python渗透测试实战》以及笔者学习心得,个人建议去购买并且阅读纸质书籍。
欢迎讨论相关问题,相互学习