├─处理脚本
│ match.py
│ trie.py
│
├─字母与数字混合
│ digit_and_letter_top100.txt
│ digit_and_letter_top1000.txt
│ digit_and_letter_top500.txt
│
├─拼音
│ pinyin_all.txt
│ pinyin_top100.txt
│ pinyin_top500.txt
│
└─键盘组合
keyboard_all.txt
keyboard_top100.txt
keyboard_top500.txt
目录导航 爆破是一种简单而有效的方法,而成功的关键在于使用适当的字典。随着安全意识的提高,常规的密码字典如top100、top500等已经不再那么有效,因此我决定更新密码爆破字典。当然,收集信息并按照一定规则生成字典也是一种好的方法,但这不在本文的讨论范围内。本文将重点研究通用的密码爆破字典。如果您不想了解过程,可以直接跳到最后获取字典。密码字典目录
>sort test.txt | uniq -c | sort –rn
密码字典来源 我下载了嘟嘟牛、7K7K、人人网、CSDN、178游戏网等五个平台的泄露数据,并只保留了密码这一列。经过整理后,总行数为42,208,168。详细情况如下表所示:统计分析 从这些泄露数据中提取各种类型的密码,并按照出现频率进行排序,例如键盘组合top100等,就可以得到各种类型的密码字典。键盘组合 键盘组合的密码非常常见,我统计了这些网站泄露密码的top10:可以看到我标红的那些密码明显是键盘组合的。键盘组合的匹配方法如下:(1)根据键盘上相邻的顺序,生成一个字典或映射,例如;(2)遍历字符串中的每个字符,判断它与其后面的一个字符是否在这个字典或映射中;(3)如果所有字符都满足此条件,则返回True,否则返回False。通过这种方法,我们可以提取出泄露数据中的键盘组合密码。拼音 中国人经常使用拼音作为密码,例如”woaini”等,因此提取拼音也是很有必要的。提取拼音稍微复杂一些,需要使用字典树,这里不再详述,相关代码将放在GitHub上。[雨苁:国民素质有待提高]数字与字母混合 单一字符组成的密码现在很多网站都不允许了,因此我准备提取非单一字符组成的密码,其中数字与字母混合是一种比较经典的组合。最后提取出来的这类密码占据了全部密码数据的约40%。排序 提取出密码后,需要按照频率进行排序。我使用的是Linux中的sort命令,例如将test.txt中的内容按照重复次数降序输出
uE7D~A@n9lVvmg3M#x)T0bF64
M!@(#xARc8gElqtSnT1ID6WJ_
tJGmT)Azw9e#%_vj~Y1uEMqxN
2*O&p6Fw8rM%xL1Pl@bB#9TVg
7!uRp2#n6~01JcCVIk*OX58BQ
%Pq)0(IUJehybgF~Q1^D7G#pB
I1D^&j2Ac6hvtz)#qZb9geCHx
&f%Rj^x09*IPb+c2)XY1kBwl8
#3EVDAaPf^n(B!l)j@rQeh~my
37%BvIAgQWjpkwyb!u~2&VFZR
*ZJj47@%$mQHxWA2REBI#5rvy
@mJYKltPAv0qR7LwM3CHcr4W+
%ERfCAzQUNx^qhtO_9aXWgj3G
G%Uz~hQeOB6YpkVy8nHCrPq3+
rOGzJ7$Mc4f%WKQ&XELAkZRID
)V9z1h2EX#5UHWqMan(RT3NLA
*nt)Bjvgx0A^6eZVFJS%3k$b1
B!~xAcl0$&)4kyTI3^2DS%nZw
BC1j7JPN9WkXQY)fI%tAhKl*O
z6gfOv032U#KZ&MhPcIL^_NXe
处理结果如下,前面是次数,后面是密码:密码字典下载地址:①雨苁网盘 ②GitHubpasswordbrutedictionary from 随机密码生成器 最后附上随机密码生成器生成的密码示例:随机密码生成器