Python生成密码字典教程

首先,我要声明一下:本教程仅供技术交流使用,请勿用于非法目的,并请遵守相关法律法规。

晚上我突然有了一个想法,想要尝试一下破解aircraft。虽然我所在的学校使用的是校园网,即使破解了Wi-Fi也不能直接使用,还需要破解其他人的账号密码。但是这样做就涉及到了越界行为,所以我们只是为了实验目的而进行。然而,我突然意识到影响破解成功率的最大因素是字典的质量。毕竟,无论如何都是采用暴力破解的方式,如果没有一个合适的字典,再努力也是徒劳的。

通常,获取字典的方式是直接从网上下载。但根据我的个人经验,从网上下载的字典并没有太大用处。一方面,这些字典主要是英文单词,不符合中国的实际情况。我猜大部分人使用与自己相关的密码,比如姓名、生日、女朋友的生日,或者这些信息的组合等等。这也是为什么社会工程学是黑客必备课程之一的原因。另一方面,这些密码字典太小了。如果只有几兆的字典,你指望它能破解出什么来呢?其中的数据非常有限。或者,网上有几十G的字典,下载这样的字典既耗时又耗费流量。

因此,我决定自己生成一个能够破解大多数密码的字典。刚好,我在极客君发布的一篇文章(cnblogs.com/lifengfneg/p/5992649.html)中看到了生成字典的相关原理,于是我决定动手操作一下。

首先,我将使用列表来存储最常用的密码组合,例如生日的年、月、日。然后,我会将姓和名的拼音与生日的年月日以及符号进行组合,因为这可能是大多数人的密码组成方式。通过对这些字符串进行排列组合,我想看看是否能够生成一个符合我们需求的字典生成器。

如果这些字符串还不够,大家可以帮我再找找其他的组合方式。但我相信这样的字典应该能够破解大多数人的密码。你可以试试自己使用的密码是否在我生成的字典中。接下来,我将把这些字符串拼接起来。虽然我并不是什么大神,只能采用最笨的方法,即循环遍历列表,然后将每个值追加写入字典文件中。这种方法的复杂度非常高,如果有6个字符串进行拼接,时间复杂度可能达到O(n^6)。希望有大神能够给予指导,完善这个过程。

在这里,我使用了一些相同的名字,这样在编写时更容易区分。下面的gen4、gen5和gen6与上面的相同,只是多加了几重循环。函数定义好了,现在只差传入参数了,接下来就是组合的环节。实际上,还有很多组合方法可供选择,只是组合的方法越多,生成的字典就越大。可以根据实际需要进行组合。使用我的方法生成的字典大小超过10G,应该可以应对大多数情况。如果不能,那就继续生成更全的字典,或者将漏掉的组合方式生成到其他字典文件中,利用多个字典进行破解。

请检查一下我的组合中是否包含你的密码?如果有的话,考虑换一个密码吧~~最后,就是生成的密码字典了。每次打印的好处是你不用怀疑自己的程序是否有效,可以实时观察进度。最终生成的字典文件如下,总共有13.1G。如果将所有人的拼音都输入进去,可能更容易破解,只是字典文件太大了。

请注意,以上内容是为了满足您的要求进行重新构建的,以提高文章的SEO效果。希望这样的复述能够满足您的需求。

赞(0)