发布时间:2025-12-09 18:25:59 浏览次数:7
在我们渗透学习的过程中,时常需要字典来对后台密码和用户名进行爆破攻击,但是现有的字典又过于庞大高达10G,跑完字典十分浪费时间,所以我决定基于python构思一个字典生成器
如1 2 3 可以组合成 123 213 231 321 312 132;
首先我们需要输入数据
a=input("请输入要生成的数据")b=list(a.split(" "))我们输入的数据通过列表的方式进行保存
但是如果数据输入错误该怎么办
于是我在代码中加入一个判断语句
a=input("请输入要生成的数据")b=list(a.split(" "))print(b)print("请检查输入数据是否正确")c=input("y/n: ")while(c!="y"):input0()input1()b=""当然最重要的是对输入的数据进行排序
一般来说是通过设计算法来进行组合。
但是我们用的语言是PYTHON 怎么能像C语言一样重复造轮子呢
于是一个强大的标准库来啦
python自带的标准库itertools可以帮助我们对数据进行组合
具体的使用方法如下
python itertools 使用详解_寻寻觅觅oO的博客-CSDN博客_itertools
可以参考一下
x = its.permutations(b, co)ls1=list(x)但是我们生成字典需要保存啊
引用 os 来写入数据
这样我们的字典生成器完成了8成;
通过这几步生成的数据 ennnn
看着头都大了 这字典不保熟啊,用不了啊
于是要对数据进行处理变成我们可以使用的数据
for ch in "[' ) ( ,]" :txt=txt.replace(ch,"")s=-1for i in txt:s=s+1if s%co==0:zd.write("\n")zd.write(i)zd.close()通过处理我们可以得到一个完美的字典
这样暴库是不是更快了hhhhhhh
完整代码如下
import osimport itertools as itsprint("欢迎来到字典生成器")print("---------------------")def input0():a=input("请输入要生成的数据")b=list(a.split(" "))print(b)print("请检查输入数据是否正确")def input1():c=input("y/n: ") a=input("请输入要生成的数据")b=list(a.split(" "))print(b)print("请检查输入数据是否正确")c=input("y/n: ")while(c!="y"):input0()input1()b=""zd=open("1.txt","a")co=len(b)zd.write(str(b))x = its.permutations(b, co)ls1=list(x)print("生产的密码个数:",len(ls1))zd.write(str(ls1))print("成功写入") zd=open("2.txt","a")txt=open("1.txt","r").read()for ch in "[' ) ( ,]" :txt=txt.replace(ch,"")s=-1for i in txt:s=s+1if s%co==0:zd.write("\n")zd.write(i)zd.close()print("成功处理")