随着无线网络的不断发展,几乎所有场合都会覆盖WIFI信号,无论是公共地点还是家庭之中。众所周知,目前WIFI普遍的认证方式为wpa2,这种认证方式安全性相当不错,但由于人们设置密码时的随意性和固有思维,使得我们可以利用字典暴力破解。

普通的字典大多是全覆盖的、总结性的,针对部分弱口令或许有用,不过1g的字典就算跑也要跑几个小时。那么如何利用已知目标wifi用户的信息生成一个不错的字典呢?

寻找wifi及具体信息

首先,生成字典的目的是为了破解密码,而想要破解密码,得先寻找一个wifi,假设找到了你邻居的wifi,那么接下来要做的就是收集信息。譬如:邻居的名字,生日,工作,老婆叫什么,儿子叫什么,生日是哪天。我们获得的信息越多,生成的密码字典就越丰富,破解可能性就越大。

填写信息文件

收集信息后,要做的是创建一个文件。

如图,首先创建一个名为information的文件,无后缀。格式如下,以“:”为分界线(英文冒号),左侧为信息名称,右侧为信息的具体内容,内容不清楚则填no,由于代码关系,不要少于20行。

生成字典

信息文件创建完毕后,便可以生成字典。这里我使用python来完成这一工作。生成的算法策略如下。

1. 大于8位的直接保留,小于8位的舍弃。

2. 信息相互组合,小于8位舍弃。

3. 生日提取年份、日月与其他信息组合,小于8位舍弃。

4. 所有小于8位的信息与短数字(0-9的全排列)进行组合,生成8位密码。

5. 所有信息与的9位以内短数字进行组合如(1233456789,000000000)。

6. 所有组合与特殊符号相结合,如“#”、“%”等。特殊字符的位置可以是开头中间和结尾。

接下来,使用python根据以上策略对信息进行结合处理。首先将信息存入一个list中。

        f = open('information','r')lines = f.read().split('
')name = lines[0].split(':')[1]list.append(name)simple_name = lines[1].split(':')[1]list.append(simple_name)family_name = lines[2].split(':')[1]list.append(family_name)phone_number = lines[3].split(':')[1]list.append(phone_number)study_number = lines[4].split(':')[1]list.append(study_number)birthday = lines[5].split(':')[1]list.append(birthday)if birthday!='no' and birthday!= 'NO':birthday_month_day = birthday[4:]birthday_year = birthday[0:4]list.append(birthday_month_day)list.append(birthday_year)else:birthday_month_day = 'no'birthday_year = 'no'list.append(birthday_month_day)list.append(birthday_year)idol_name = lines[6].split(':')[1]list.append(idol_name)idol_simple_name = lines[7].split(':')[1]list.append(idol_simple_name)father_name = lines[8].split(':')[1]list.append(family_name)father_simple_name = lines[9].split(':')[1]list.append(father_simple_name)mather_name = lines[10].split(':')[1]list.append(mather_name)mather_simple_name = lines[11].split(':')[1]list.append(mather_simple_name)son_name = lines[12].split(':')[1]list.append(son_name)son_simple_name = lines[13].split(':')[1]list.append(son_simple_name)father_birthday = lines[14].split(':')[1]list.append(father_birthday)if father_birthday!='no' and father_birthday!= 'NO':father_birthday_month_day = father_birthday[4:]father_birthday_year = father_birthday[0:4]list.append(father_birthday_month_day)list.append(father_birthday_year)else:father_birthday_month_day = 'no'father_birthday_year = 'no'list.append(father_birthday_month_day)list.append(father_birthday_year)mather_birthday = lines[15].split(':')[1]list.append(mather_birthday)if mather_birthday!='no' and mather_birthday!= 'NO':mather_birthday_month_day = mather_birthday[4:]mather_birthday_year = mather_birthday[0:4]list.append(mather_birthday_month_day)list.append(mather_birthday_year)else:mather_birthday_month_day = 'no'mather_birthday_year = 'no'list.append(mather_birthday_month_day)list.append(mather_birthday_year)son_birthday = lines[16].split(':')[1]list.append(son_birthday)if son_birthday !='no' and son_birthday != 'NO':son_birthday_month_day = son_birthday[4:]son_birthday_year = son_birthday[0:4]list.append(son_birthday_month_day)list.append(son_birthday_year)else:son_birthday_month_day = 'no'son_birthday_year = 'no'list.append(son_birthday_month_day)list.append(son_birthday_year)address = lines[17].split(':')[1]list.append(address)university_name = lines[18].split(':')[1]list.append(university_name)university_simple_name = lines[19].split(':')[1]list.append(university_simple_name)for i in range(20,len(lines)):list.append(lines[i].split(':')[1])f.close()

View Code

为了阅读方便,information文件中前20个信息写的很具体。最后三行则是对20行之后的补充。

随后,将短数字与特殊符号放入其他两个list中,代码见最后。并根据策略进行相互组合。最后生成符合我们心意的字典。最后附上代码~

#coding:utf-8
import itertools
def read_file():try:f = open('information','r')lines = f.read().split('
')name = lines[0].split(':')[1]list.append(name)simple_name = lines[1].split(':')[1]list.append(simple_name)family_name = lines[2].split(':')[1]list.append(family_name)phone_number = lines[3].split(':')[1]list.append(phone_number)study_number = lines[4].split(':')[1]list.append(study_number)birthday = lines[5].split(':')[1]list.append(birthday)if birthday!='no' and birthday!= 'NO':birthday_month_day = birthday[4:]birthday_year = birthday[0:4]list.append(birthday_month_day)list.append(birthday_year)else:birthday_month_day = 'no'birthday_year = 'no'list.append(birthday_month_day)list.append(birthday_year)idol_name = lines[6].split(':')[1]list.append(idol_name)idol_simple_name = lines[7].split(':')[1]list.append(idol_simple_name)father_name = lines[8].split(':')[1]list.append(family_name)father_simple_name = lines[9].split(':')[1]list.append(father_simple_name)mather_name = lines[10].split(':')[1]list.append(mather_name)mather_simple_name = lines[11].split(':')[1]list.append(mather_simple_name)son_name = lines[12].split(':')[1]list.append(son_name)son_simple_name = lines[13].split(':')[1]list.append(son_simple_name)father_birthday = lines[14].split(':')[1]list.append(father_birthday)if father_birthday!='no' and father_birthday!= 'NO':father_birthday_month_day = father_birthday[4:]father_birthday_year = father_birthday[0:4]list.append(father_birthday_month_day)list.append(father_birthday_year)else:father_birthday_month_day = 'no'father_birthday_year = 'no'list.append(father_birthday_month_day)list.append(father_birthday_year)mather_birthday = lines[15].split(':')[1]list.append(mather_birthday)if mather_birthday!='no' and mather_birthday!= 'NO':mather_birthday_month_day = mather_birthday[4:]mather_birthday_year = mather_birthday[0:4]list.append(mather_birthday_month_day)list.append(mather_birthday_year)else:mather_birthday_month_day = 'no'mather_birthday_year = 'no'list.append(mather_birthday_month_day)list.append(mather_birthday_year)son_birthday = lines[16].split(':')[1]list.append(son_birthday)if son_birthday !='no' and son_birthday != 'NO':son_birthday_month_day = son_birthday[4:]son_birthday_year = son_birthday[0:4]list.append(son_birthday_month_day)list.append(son_birthday_year)else:son_birthday_month_day = 'no'son_birthday_year = 'no'list.append(son_birthday_month_day)list.append(son_birthday_year)address = lines[17].split(':')[1]list.append(address)university_name = lines[18].split(':')[1]list.append(university_name)university_simple_name = lines[19].split(':')[1]list.append(university_simple_name)for i in range(20,len(lines)):list.append(lines[i].split(':')[1])f.close()except:pass
def combination():f = open('create_key','w')for i in range(len(list)):if list[i]!='no':if len(list[i]) >= 8:f.write(list[i]+'
')elif len(list[i])<8:n = 8 - len(list[i])for j in itertools.permutations('1234567890',n):f.write(list[i]+''.join(j)+'
')for j in range(0,len(list)):if len(list[i]+list[j])>=8 and list[i]!='no' and list[j]!='no' and list[i]!=list[j]:f.write(list[i]+list[j]+'
')for m in range(0,len(list_special)):f.write(list_special[m]+list[i] + list[j] + '
')f.write(list[i] + list_special[m] + list[j] + '
')f.write(list[i] + list[j] + list_special[m] + '
')for k in range(0,12):for l in range(10):if len(list[i]+list_number[k][0:l])>=8:f.write(list[i]+list_number[k][0:l]+'
')f.write(list_number[k][0:l]+list[i]+'
')for m in range(0, len(list_special)):f.write(list_special[m] + list[i] + list_number[k][0:l] + '
')f.write(list[i] + list_special[m] + list_number[k][0:l] + '
')f.write(list[i] + list_number[k][0:l] + list_special[m] + '
')f.write(list_special[m] + list_number[k][0:l] + list[i] + '
')f.write(list_number[k][0:l] +list_special[m] + list[i] + '
')f.write(list_number[k][0:l] + list[i] + list_special[m]+'
')f.write(list[i]+list_number[k]+'
')for m in range(0, len(list_special)):f.write(list_special[m]+list[i] + list_number[k] + '
')f.write(list[i]+list_special[m]+list_number[k]+'
')f.write(list[i]+list_number[k]+list_special[m]+'
')f.write(list_number[k]+list[i]+'
')for m in range(0, len(list_special)):f.write(list_special[m]+list_number[k] + list[i] + '
')f.write(list_number[k]+list_special[m]+list[i]+'
')f.write(list_number[k]+list[i]+list_special[m]+'
')
    f.close()
def create_list_number():simple_number1 = '123456789'list_number.append(simple_number1)simple_number2 = '000000000'list_number.append(simple_number2)simple_number3 = '111111111'list_number.append(simple_number3)simple_number4 = '222222222'list_number.append(simple_number4)simple_number5 = '333333333'list_number.append(simple_number5)simple_number6 = '444444444'list_number.append(simple_number6)simple_number7 = '555555555'list_number.append(simple_number7)simple_number8 = '666666666'list_number.append(simple_number8)simple_number9 = '777777777'list_number.append(simple_number9)simple_number10 = '888888888'list_number.append(simple_number10)simple_number11 = '999999999'list_number.append(simple_number11)simple_number12 = '987654321'list_number.append(simple_number12)
def create_list_special():list_special.append(',')list_special.append('.')list_special.append('?')list_special.append('#')list_special.append('/')list_special.append(';')list_special.append(':')list_special.append('!')list_special.append('@')list_special.append('$')list_special.append('%')list_special.append('^')list_special.append('&')list_special.append('*')
def main():global listlist = []global list_numberlist_number = []global list_speciallist_special = []create_list_special()create_list_number()read_file()combination()
if __name__ == '__main__':main()

View Code

原文:https://blog.csdn.net/qq_41841569/article/details/83959309

转载于:https://www.cnblogs.com/chenxi188/p/10710174.html

用python进行wifi密码生成相关推荐

  1. Python破解Wifi密码脚本

    Python破解Wifi密码脚本 使用pywifi 暴力破解wifi密码,就是使用使用多个密码与wifi进行连接测试.总的来说,破解成功的可能性是存在的,但需要付出很多的努力,当然,付出努力也不一定能 ...

  2. Python学习教程:用Python破解wifi密码

    Python真的是无所不能,原因就是因为Python有数目庞大的库,无数的现成的轮子,让你做很多很多应用都非常方便.wifi跟我们的生活息息相关,无处不在.今天从WiFi连接的原理,再结合代码为大家详 ...

  3. 思路+源码,利用Python破解WIFI密码详解,100M的字典已备好

    前言 WIFI破解,Python程序员必学技能.WIFI已经完全普及,现在Python程序员没网,走到哪里都不怕! 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后 ...

  4. 用Python破解WiFi密码,太刺激了!

    来源丨网络 大家好,我是小z,也可以叫我阿粥~ 本文给大家分享的是如何通过 Python 脚本实现 WIFI 密码的暴力破解,从而实现免费蹭网. 脚本从无图形和图形界面来分别实现,主要使用的是pywi ...

  5. 教你如何使用Python破解WIFI密码

    首先要生成密码本 对于这个密码本就是我们常用的密码,一般是有数字.字母和符号组成.而现在呢?我们就用Python生成一个简单的密码本,这里用到的思路主要是穷举法.这里用到的库是itertools,没有 ...

  6. 用Python破解WiFi密码,太刺激了

    前言 本文将记录学习下如何通过 Python 脚本实现 WIFI 密码的暴力破解,从而实现免费蹭网. 无图形界面 先来看看没有图形界面版的爆破脚本. WIFI爆破 import pywifi from ...

  7. Python破解WIFI密码完整源代码,实测可成功破解

    目录 # 修正记录:2022-12-01 1,先安装Python环境(这个不用多说了吧) 2,安装PyWifi 3,自己手工整理高频弱口令,不建议程序生成的字典,生成的字典成功率实在太低. 4,自己生 ...

  8. 怎么用python破解wifi密码?

    今天六一儿童节,跟大家分享一个有意思的案例:如何使用Python暴力破解WiFi密码 不多说什么直接开始~ 如何暴力破解 我们知道,计算机相比人类,最大的优势就是它能够重复性执行一些任务,但它永远不会 ...

  9. 用Python破解WiFi密码,亲测有效,简直不能太爽了

    本文将记录学习下如何通过 Python 脚本实现 WIFI 密码的暴力破解,从而实现免费蹭网. 现在我想wifi已经是不能离开我们的生活了吧,最少我是这么觉得,我在家,公司,以及出门基本上都要用到,不 ...

  10. 如何用Python蹭WiFi密码,太刺激了!

    来源丨网络 大家好,我是菜鸟哥~ 本文给大家分享的是如何通过 Python 脚本实现 蹭WIFI 密码,从而实现免费蹭网. 脚本从无图形和图形界面来分别实现,主要使用的是pywifi库: 无图形界面 ...

最新文章

  1. 银行卡为何要使用ISO8583格式
  2. memkind版本查看_QQ 20周年来啦!扫码查看你的回忆
  3. for range 经典问题
  4. 设置windows自动登录
  5. kitti数据集介绍论文Vision meets Robotics: The KITTI Dataset
  6. DigitalFilmTools Rays 2.1.2汉化版|丁达尔光束耶稣光滤镜插件
  7. Vue滑动隐藏图标效果
  8. Nginx 企业级优化
  9. csr蓝牙适配 linux,Linux系统下蓝牙立体声配置A2DP profile
  10. python目前的最新版本是_最新版Python 3.8.6 版本发布
  11. vijos P1263 单挑女飞贼
  12. Redis为什么这么快?
  13. SSMS安装失败及解决
  14. (Swift)Missing argument for parameter #1 in call
  15. 硬仗荣获旧金山烈酒大赛(SFWSC)双金奖殊荣,硬仗酒蜚声海内外
  16. 流媒体相关技术了解入门
  17. UML之父:架构业务需求与软件开发的桥梁
  18. Python学习第四篇:利用python抓取英语单词
  19. 为什么bitnami 安装的软件进入容器,用户名都是I have no name
  20. 基于matlab的DOA角度定位估计仿真

热门文章

  1. openstack创建虚拟机
  2. 结对项目:电梯调度算法的实现和测试
  3. 超全必读!NLP 事件抽取综述(下)
  4. NLP高阶实战必读:一文走遍完整自然语言处理流程 文章
  5. 【GNN】图网络|图神经网络(GNN)结构化数据分析
  6. 分享整理的 Python 学习路线图,(附工具+视频+书籍+面试)
  7. 每日算法系列【LeetCode 329】矩阵中的最长递增路径
  8. 白板推导系列Pytorch-隐马尔可夫模型(HMM)
  9. GroupBy()方法
  10. 《SEO实战密码》读后一点感受