无意中看到这篇博客📰,觉得很有意思,学习尝试一下😍

首先声明:本文只用于技术交流,请勿用于非法用途。请严格遵循相关法律法规。

暴力破解破解成功率的最大因素就是字典的好坏,如果没有一个趁手的字典,再怎么努力也没用。

密码字典

密码字典,里面要包含大家最常用的密码,还有根据大家的习惯设置相应的密码。一般去网上找都可以找到。

这里参考 📰,用python自己动手操作生成密码字典 。原理很简单,数字、字母、特殊符号组合,很多人不会随便用自己都记不住的数字组合,一般都是用出生的年月日或者用年月日与其他方式组合。

储存数组

存储最常用密码组,特殊符号。

1
2
3
4
#常用特殊字符
MOST_SIN = ["!","@","#","_","~","*","$",".",","]
#最常用的密码
MOST_USE = ["11111111","00000000","11223344","0123456789","000000","00000000","0123456789","101010","1111111","11111111","1111111111","111222","112233","11223344","121212","12121212","12344321","12345","123456","1234567","12345678","123456789","1234567890","1234qwer","1qaz2wsx","22222222","31415926","55555555","7758521","7758258","77777777","88888888","99999999","999999999","abcd1234","abcdefg","admin","love","china","6868","fuck","1314","1111","8888","88888","888888","666666","6666"]

存储生日的年、月、日。

1
2
3
4
5
6
7
8
#常用年份
YEAR =["1970","1971","1972","1973","1974","1975","1976","1977","1978","1979","1980","1981","1982","1983","1984","1985","1986","1987","1988","1989","1990","1991","1992","1993","1994","1995","1996","1997","1998","1999","2000","2001","2002","2003","2004","2005","2006","2007","2008","2009","2001","2002","2003","2004","2005","2006","2007","2008","2009","2010","2011","2012","2013","2014","2015","2016","2017","2018","2019","2020","2021","2022","2023","2024"]

#常用月份
MONTH = ["01","02","03","04","05","06","07","08","09","10","11","12","1","2","3","4","5","6","7","8","9"]

#常用日期
DAY = ["01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","1","2","3","4","5","6","7","8","9"]

存储名字的姓,名的拼音

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#常用姓氏
LASTNAME = ["li","ma","wu","xu","hu","yu","he","liu","sun","gao","luo","cai","guo","zhu","wang","zhao","yang","zhou","song","meng","deng","zhang","huang","liang","qian","zheng","feng","chen","chu","shen","han","kong"]

#常用首字母
FLETTER = ["b","c","d","f","g","h","j","k","l","m","n","p","q","s","t","w","x","y","z"]

#包含名字的拼音
nameList = []

B_SUB = ["bo","bi","bai","bei","bao","ban","ben","bin","bang","bing","biao"]
nameList.append(B_SUB)

C_SUB = ["ci","cai","can","cen","cun","ceng","cong","cao"]
nameList.append(C_SUB)

D_SUB = ["de","di","du","dai","dao","dan","deng","ding","dang","dong"]
nameList.append(D_SUB)

F_SUB = ["fa","fu","fei","fan","fen","fang","feng","fou"]
nameList.append(F_SUB)

G_SUB = ["gu","gui","gao","gai","gan","gen","guo","gang","geng","guan","guang"]
nameList.append(G_SUB)

H_SUB = ["hu","hui","hao","han","hen","huo","hang","heng","huan","huang","hun"]
nameList.append(H_SUB)

J_SUB = ["ji","ju","jiu","jie","jin","jun","jue","jing","ji","jia","jiao","jian","juan","jiang"]
nameList.append(J_SUB)

K_SUB = ["kai","kui","kan","ken","kun","kuo","kang","keng","kong","kuan","kuang"]
nameList.append(K_SUB)

L_SUB = ["le","li","lai","lu","lei","lie","lan","lin","lun","lang","ling","long","liao","lian","luan"]
nameList.append(L_SUB)

M_SUB = ["mi","mu","mai","man","mei","mao","miu","min","mang","meng","ming","miao","mian"]
nameList.append(M_SUB)

N_SUB = ["na","ni","nu","niu","nan","nuo","neng","ning","nv"]
nameList.append(N_SUB)

P_SUB = ["pa","pi","pu","pai","pen","pin","pan","pao","peng","ping","pang","pian"]
nameList.append(P_SUB)

Q_SUB = ["qi","qu","qiu","qing","qin","quan","qian","qiao","que"]
nameList.append(Q_SUB)

R_SUB = ["ri","re","ruo","rou","ran","ren","rui","rang","reng"]
nameList.append(R_SUB)

S_SUB = ["sa","si","se","su","sai","sun","suo","song","sang","san","suan"]
nameList.append(S_SUB)

T_SUB = ["ta","te","tan","tei","ti","tu","tang","tai","tao","tuo","teng","ting","tun","tong","tian","tou"]
nameList.append(T_SUB)

W_SUB = ["wa","wu","wai","wei","wang","wan"]
nameList.append(W_SUB)

X_SUB = ["xi","xu","xiu","xian","xu","xie","xun","xin","xing","xiang","xiong","xia","xuan","xue"]
nameList.append(X_SUB)

Y_SUB = ["ya","yi","yu","yao","you","yan","yun","yue","yin","ying","yuan","yang","yong"]
nameList.append(Y_SUB)

Z_SUB = ["zu","zao","zui","ze","zi","zou","zuo","zeng","zuan","zong","zun","zan","zai"]
nameList.append(Z_SUB)

ZH_SUB = ["zhi","zhu","zhui","zhan","zhen","zheng","zhang","zhong","zhuan","zhuang","zhao","zhe","zha","zhai"]
nameList.append(ZH_SUB)

CH_SUB = ["chi","chu","chui","chan","chen","cheng","chang","chong","chuan","chuang","chao","che","cha","chai"]
nameList.append(CH_SUB)

SH_SUB = ["shi","shu","shui","shan","shen","sheng","shang","shuan","shuang","shao","she","sha","shai"]
nameList.append(SH_SUB)

生成字典

接下来是把这些字符串拼接起来。使用最简单的方法循环遍历列表,然后把每个值追加写入到字典文件中。这种方法的复杂度真的很高,如果密码生成复杂,花费时间真的真的真的很长。如有大佬,可以指点一二。😁

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
#密码生成函数
def make_pwd1(a):
pwd = open("Passwd.txt", 'a+')
for i in range(len(a)):
line = a[i]+"\n"
pwd.writelines(line)
pwd.close()

def make_pwd2(a,b):
pwd = open("Passwd.txt", 'a+')
for i in range(len(a)):
for j in range(len(b)):
line = a[i]+b[j]+"\n"
pwd.writelines(line)
pwd.close()

def make_pwd3(a,b,c):
pwd = open("Passwd.txt", 'a+')
for i in range(len(a)):
for j in range(len(b)):
for k in range(len(c)):
line = a[i]+b[j]+c[k]+"\n"
pwd.writelines(line)
pwd.close()

def make_pwd4(a,b,c,d):
pwd = open("Passwd.txt", 'a+')
for i in range(len(a)):
for j in range(len(b)):
for k in range(len(c)):
for l in range(len(d)):
line = a[i]+b[j]+c[k]+d[l]+"\n"
pwd.writelines(line)
pwd.close()

def make_pwd5(a,b,c,d,e):
pwd = open("Passwd.txt", 'a+')
for i in range(len(a)):
for j in range(len(b)):
for k in range(len(c)):
for l in range(len(d)):
for m in range(len(e)):
line = a[i]+b[j]+c[k]+d[l]+e[m]+"\n"
pwd.writelines(line)
pwd.close()

def make_pwd6(a,b,c,d,e,f):
pwd = open("Passwd.txt", 'a+')
for i in range(len(a)):
for j in range(len(b)):
for k in range(len(c)):
for l in range(len(d)):
for m in range(len(e)):
for n in range(len(f)):
line = a[i]+b[j]+c[k]+d[l]+e[m]+f[n]+"\n"
pwd.writelines(line)
pwd.close()


#常用密码
print ("正在生成:常用密码,常用密码+常用符号")
make_pwd1(MOST_USE) #最常用密码生成
make_pwd2(MOST_USE,MOST_SIN) #常用密码+常用符号

#姓+其他组合
print ("正在生成:姓+年+常用符号")
make_pwd3(LASTNAME,YEAR,MOST_SIN)
print ("正在生成:姓+常用数字")
make_pwd2(LASTNAME,MOST_USE)
print ("正在生成:姓+常用数字+常用符号")
make_pwd3(LASTNAME,MOST_USE,MOST_SIN)
print ("正在生成:姓+年+月+日")
make_pwd4(LASTNAME,YEAR,MONTH,DAY)
print ("正在生成:姓+月+日+常用符号")
make_pwd4(LASTNAME,MONTH,DAY,MOST_SIN)
print ("正在生成:姓+名+年")
make_pwd3(LASTNAME,FLETTER,YEAR)
print ("正在生成:姓+名+月+日")
make_pwd4(LASTNAME,FLETTER,MONTH,DAY)
print ("正在生成:姓+名+年+月+日")
make_pwd5(LASTNAME,FLETTER,YEAR,MONTH,DAY)
print ("正在生成:姓+名+名+年")
make_pwd4(LASTNAME,FLETTER,FLETTER,YEAR)
print ("正在生成:姓+名+名+月+日")
make_pwd5(LASTNAME,FLETTER,FLETTER,MONTH,DAY)
print ("正在生成:姓+名+名+年+月+日")
make_pwd6(LASTNAME,FLETTER,FLETTER,YEAR,MONTH,DAY)

#名字首字母(姓+1字名、不带姓2字名)+其他组合
print ("正在生成:2字名首字母+常用数字")
make_pwd3(FLETTER,FLETTER,MOST_USE)
print ("正在生成:2字名首字母+常用符号")
make_pwd3(FLETTER,FLETTER,MOST_SIN)
print ("正在生成:2字名首字母+年")
make_pwd3(FLETTER,FLETTER,YEAR)
print ("正在生成:2字名首字母+年+常用符号")
make_pwd4(FLETTER,FLETTER,YEAR,MOST_SIN)
print ("正在生成:2字名首字母+月+日")
make_pwd4(FLETTER,FLETTER,MONTH,DAY)
print ("正在生成:2字名首字母+月+日+常用符号")
make_pwd5(FLETTER,FLETTER,MONTH,DAY,MOST_SIN)
print ("正在生成:2字名首字母+年+月+日")
make_pwd5(FLETTER,FLETTER,YEAR,MONTH,DAY)

#名字首字母(姓+2字名)+其他组合
print ("正在生成:3字名首字母+常用数字")
make_pwd4(FLETTER,FLETTER,FLETTER,MOST_USE)
print ("正在生成:3字名首字母+常用符号")
make_pwd4(FLETTER,FLETTER,FLETTER,MOST_SIN)
print ("正在生成:3字名首字母+年")
make_pwd4(FLETTER,FLETTER,FLETTER,YEAR)
print ("正在生成:3字名首字母+年+常用符号")
make_pwd5(FLETTER,FLETTER,FLETTER,YEAR,MOST_SIN)
print ("正在生成:3字名首字母+月+日")
make_pwd5(FLETTER,FLETTER,FLETTER,MONTH,DAY)
print ("正在生成:3字名首字母+月+日+常用符号")
make_pwd6(FLETTER,FLETTER,FLETTER,MONTH,DAY,MOST_SIN)
print ("正在生成:3字名首字母+年+月+日")
make_pwd6(FLETTER,FLETTER,FLETTER,YEAR,MONTH,DAY)

"""
#2汉字全拼+其他组合

print ("正在生成:2汉字全拼+常用数字")
make_pwd3(LASTNAME,nameList,MOST_USE)
print ("正在生成:2汉字全拼+常用符号")
make_pwd3(LASTNAME,nameList,MOST_SIN)
print ("正在生成:2汉字全拼母+年")
make_pwd3(LASTNAME,nameList,YEAR)
print ("正在生成:2汉字全拼+年+常用符号")
make_pwd4(LASTNAME,nameList,YEAR,MOST_SIN)
print ("正在生成:2汉字全拼+月+日")
make_pwd4(LASTNAME,nameList,MONTH,DAY)
print ("正在生成:2汉字全拼+月+日+常用符号")
make_pwd5(LASTNAME,nameList,MONTH,DAY,MOST_SIN)
print ("正在生成:2汉字全拼+年+月+日")
make_pwd5(LASTNAME,nameList,YEAR,MONTH,DAY)
"""

"""
#3汉字全拼+其他组合

print ("正在生成:3汉字全拼+常用数字")
make_pwd4(LASTNAME,nameList,nameList,MOST_USE)
print ("正在生成:3汉字全拼+常用符号")
make_pwd4(LASTNAME,nameList,nameList,MOST_SIN)
print ("正在生成:3汉字全拼+年")
make_pwd4(LASTNAME,nameList,nameList,YEAR)
print ("正在生成:3汉字全拼+年+常用符号")
make_pwd5(LASTNAME,nameList,nameList,YEAR,MOST_SIN)
print ("正在生成:3汉字全拼+月+日")
make_pwd5(LASTNAME,nameList,nameList,MONTH,DAY)
print ("正在生成:3汉字全拼+月+日+常用符号")
make_pwd6(LASTNAME,nameList,nameList,MONTH,DAY,MOST_SIN)
print ("正在生成:3汉字全拼+年+月+日")
make_pwd6(LASTNAME,nameList,nameList,YEAR,MONTH,DAY)
"""

最后生成的字典文件,本人测试只生成了常用的,也没有大写字母,有要尝试的可以自行添加,辣鸡电脑😒耗时较长大约40分钟。

暴力破解这玩意看脸,推荐优先使用弱密码,这样破解起来比较省事。

📖参考