用python进行wifi密码生成
随着无线网络的不断发展,几乎所有场合都会覆盖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()
为了阅读方便,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('',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 = ''
list_number.append(simple_number1)
simple_number2 = ''
list_number.append(simple_number2)
simple_number3 = ''
list_number.append(simple_number3)
simple_number4 = ''
list_number.append(simple_number4)
simple_number5 = ''
list_number.append(simple_number5)
simple_number6 = ''
list_number.append(simple_number6)
simple_number7 = ''
list_number.append(simple_number7)
simple_number8 = ''
list_number.append(simple_number8)
simple_number9 = ''
list_number.append(simple_number9)
simple_number10 = ''
list_number.append(simple_number10)
simple_number11 = ''
list_number.append(simple_number11)
simple_number12 = ''
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 list
list = []
global list_number
list_number = []
global list_special
list_special = []
create_list_special()
create_list_number()
read_file()
combination()
if __name__ == '__main__':
main()
原文:https://blog.csdn.net/qq_41841569/article/details/83959309
用python进行wifi密码生成的更多相关文章
- Python破解Wifi密码思路
一.前言说明 本机运行环境:系统环境Win10,运行环境Python3.6,运行工具Pycharm 需要Python的包有:pywifi 这是一种暴力破解wifi的模式,需要的时间比较长,本文主要提供 ...
- 用 Python 破解 WiFi 密码
如今,WiFi 跟我们的生活息息相关,无处不在.没有 WiFi 的地方是没有灵魂的! 然而,比没有WiFi更让人绝望的,是有满格WiFi信号却没有密码…… 今天我们就来尝试下,如何利用pyth ...
- 牛逼了,用Python破解wifi密码
Python真的是无所不能,原因就是因为Python有数目庞大的库,无数的现成的轮子,让你做很多很多应用都非常方便.wifi跟我们的生活息息相关,无处不在.今天从WiFi连接的原理,再结合代码为大家详 ...
- 用 Python 破解 WIFI 密码,走到哪里都能连 WIFI
WIFI 破解,Python 程序员必学技能.WIFI 已经完全普及,现在 Python 程序员没网,走到哪里都不怕! 教你们一招,如何在图片中提取 Python 脚本代码.图片发送至手机 QQ 长按 ...
- python写一个密码生成器的类,要求有个类变量,统计一下一共生成过多少个密码。 要求有4个方法,1:构造方法 2 实例方法 3 类方法 4 静态方法
生成指定长度的随机数字密码 生成指定长度的随机字母密码 生成指定长度的随机数字和字母的混合 #encoding=utf-8 import random import string class pa ...
- Python 查看本机WiFi密码
http://www.lijiejie.com/python-get-all-saved-wifi-passwords/ 很早以前我写过一个,丢了. 今天偶然看到这篇文章 , 也是很久以前写的,他用 ...
- 分享一个撩妹、装13神技能,0基础用Python暴力破解WiFi密码
WiFi密码Python暴力破解 Python密码破解部分截图 获取视频资料,转发此文+点击喜欢,然后获取资料请加Python交流群:580478401,就可以获取视频教程+源码 环境准备: py ...
- Python黑客泰斗利用aircrack-ng破解 wifi 密码,超详细教程!
开始前,先连上无线网卡,因为虚拟机中的kali系统不用调用笔记本自带的无线网卡,所以需要一个外接无线网卡,然后接入kali系统. 输入 ifconfig -a 查看网卡,多了个 wlan0,说明网卡已 ...
- python暴力破解wifi密码程序
import time # 破解wifi库 import pywifi from pywifi import const class PoJie(object): def __init__(self, ...
随机推荐
- push问题1
问题: $ git pushTo gitee.com:kekemuyu/xtpole.git ! [rejected] master -> master (fetch first)error: ...
- 【PyQt5-Qt Designer】Qt 的标准对话框总结
PyQt5 各种弹出对话框的总结 忙碌了两天才总结完,深刻体会到 “编程在实践中才能领悟更深”,后续有了更多的 理解继续来补充... 效果如下: 参考: https://www.cnblogs.com ...
- (1.5)MySQL表的5种分区类型
(1.5)MySQL表的5种分区类型 关键词:mysql表分区 小细节: (1)Null 将会放入最小范围区间 (2)无论哪种类型的分区,要么没有主键.唯一键,要么分区表的主键/唯一键都必须包含 ...
- HTTP response 添加body
在拦截器中进行拦截操作时,想要给response添加body,如何操作? /** * 返回JSON数据 * @param response * @param obj * @throws Excepti ...
- JVM调优之jstack找出最耗cpu的线程、定位代码
jstack可以定位到线程堆栈,根据堆栈信息我们可以定位到具体代码,所以它在JVM性能调优中使用得非常多.下面我们来一个实例找出某个Java进程中最耗费CPU的Java线程并定位堆栈信息,用到的命令有 ...
- Nginx解析PHP的原理 | CGI、FastCGI及php-fpm的关系
Nginx解析PHP的原理,CGI/FastCGI以及PHP-Fpm的关系. 一.PHP+Nginx应运而生的场景.随着互联网的发展,用户对此接受面广,数据流的增大使得Web端的运行承载压力日益增大, ...
- Spark Mllib之分层抽样
Spark中组件Mllib的学习之基础概念篇 1.解释 分层抽样的概念就不讲了,具体的操作: RDD有个操作可以直接进行抽样:sampleByKey和sample等,这里主要介绍这两个 (1)将字符串 ...
- Java 基础 接口和多态
接口 接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成.这样将功能的 ...
- mac 安装geckodriver和chromedriver
Last login: Fri Apr :: on ttys000 (base) localhost:~ ligaijiang$ env TERM_PROGRAM=Apple_Terminal SHE ...
- [Java in NetBeans] Lesson 08. If: conditional statement
这个课程的参考视频和图片来自youtube. 主要学到的知识点有: 1. If-else statement if (x > 5) { System.out.println("Inpu ...