詳解Python如何實現(xiàn)查看WiFi密碼
由于最近公司加強對無線安全的管理,wifi密碼從以前的12345678,變成復(fù)雜難記的一串,導(dǎo)致我時常忘記WIFI密碼,而遭受同事的“毒打”。由于我不是那種喜歡打擾同事認(rèn)真工作的人,于是,我決定用python來試試,看看能不能讀取到已連接過WIFI的密碼,這樣就不用老是叨擾別人了!
1. windows查看WIFI密碼的方法
經(jīng)過我的一番思考和查閱資料(搜索引擎),原理大致是這樣。 通過windows的wifi屬性查看密碼。這種方式,操作起來相當(dāng)麻煩,一般人根本找不到。即使第一次找到了,找第二次也要折磨死人。

另外,我們可以使用命令行來實現(xiàn)上述操作:
netsh wlan show profiles
列出已連接wifi的列表 然后再使用命令 ``netsh wlan show profiles WiFi名稱 key=clear:
netsh wlan show profiles ZXQ key=clear
查看安全設(shè)置獲得密碼:

上面的方式,仍然比較麻煩,對于我這種懶人來說,實在是有點聒噪!我就想快速的查看密碼,不要輸入!
想到python也可以執(zhí)行cmd命令,那么第二種命令行的方式,不就可以用python來實現(xiàn)了嗎?!
2. 使用subprocess模塊
subprocess是Python標(biāo)準(zhǔn)庫中的一個模塊,用于在Python程序中執(zhí)行外部命令或子進(jìn)程。它可以通過創(chuàng)建子進(jìn)程并與其進(jìn)行通信,來調(diào)用系統(tǒng)命令或其他可執(zhí)行文件。
subprocess模塊提供了多個函數(shù)來調(diào)用子進(jìn)程,如subprocess.run()、subprocess.Popen()等。這些函數(shù)可以執(zhí)行命令并返回執(zhí)行結(jié)果,也可以通過傳遞參數(shù)和讀取標(biāo)準(zhǔn)輸入輸出進(jìn)行進(jìn)程間的通信。
import subprocess
def get_wifi_password():
# 調(diào)用系統(tǒng)命令,獲取WiFi密碼
result = subprocess.check_output(['netsh', 'wlan', 'show', 'profile'])
result = result.decode('gbk') # 將命令輸出轉(zhuǎn)換為字符串
# 提取WiFi名稱
profiles = [i.split(':')[1][1:-1] for i in result.split('\n') if '所有用戶配置文件' in i]
# 獲取各個WiFi網(wǎng)絡(luò)的密碼
passwords = []
for profile in profiles:
password = subprocess.check_output(['netsh', 'wlan', 'show', 'profile', 'name=' + profile, 'key=clear'])
password = password.decode('gbk') # 轉(zhuǎn)換為字符串
password = [i.split(':')[1][1:-1] for i in password.split('\n') if '關(guān)鍵內(nèi)容' in i]
passwords.append((profile, password[0]))
return passwords
# 調(diào)用函數(shù)獲取WiFi密碼
wifi_passwords = get_wifi_password()
# 打印WiFi名稱和密碼
for wifi in wifi_passwords:
print(f'WiFi名稱:{wifi[0]},密碼:{wifi[1]}')
Got it!, 有了這個腳本,這不就是點一下的事么。在這個示例代碼中,我們使用subprocess.check_output 函數(shù)調(diào)用了 netsh 命令來獲取已連接WiFi網(wǎng)絡(luò)的信息。獲取到的信息中包含WiFi網(wǎng)絡(luò)的名稱和密碼。
送給公司行政的小姐姐用,下次她見到我,不得叫一聲大哥?
3. pywifi模塊暴力破解
PyWifi 是一個用于操作WiFi的第三方庫,提供了方便的API以獲取WiFi信息。其本身并不支持獲取已連接過的wifi的密碼。該庫主要用于連接、斷開以及掃描wifi網(wǎng)絡(luò)。
首先,我們需要使用pip命令來安裝pywifi庫:
pip install pywifi
由于此模塊基于 comtypes 模塊,因此同時需要下載此模塊:
pip install comtypes
使用 PyWifi,首先我們需要創(chuàng)建一個PyWifi 對象:
#-*-coding:utf-8-*-
import pywifi,time
from pywifi import const
def scan_wifi():
wifi = pywifi.PyWiFi()
iface = wifi.interfaces()[0] #acquire the first Wlan card,maybe not
iface.scan() # 掃描wifi
time.sleep(1) # 休息一下
basewifi = iface.scan_results()
for i in basewifi:
print("wifi scan result:{}".format(i.ssid))
print("wifi device MAC address:{}".format(i.bssid))
# 嘗試連接wifi
profile = pywifi.Profile() #配置文件
profile.ssid = i.ssid #wifi名稱
profile.auth = const.AUTH_ALG_OPEN #需要密碼
profile.akm.append(const.AKM_TYPE_WPA2PSK) #加密類型
profile.cipher = const.CIPHER_TYPE_CCMP #加密單元
profile.key = gen_key() #wifi密碼
iface.remove_all_network_profiles() #刪除其它配置文件
tmp_profile = iface.add_network_profile(profile) #加載配置文件
iface.connect(tmp_profile)
time.sleep(5)
if iface.status() == const.IFACE_CONNECTED:
print("connect successfully!")
else:
print("connect failed!")
time.sleep(1)
return basewifi
def gen_key():
# 生成wifi破解密碼,通用做法是讀取密碼字典庫
pass
if __name__ == '__main__':
scan_wifi()
因此,小伙伴們要當(dāng)心哦,wifi密碼設(shè)置要復(fù)雜!否則被人偷用網(wǎng)絡(luò)都不知道哦! 當(dāng)然咯,這個暴力破解的方法耗時也不穩(wěn)定,而且也不一定正確,本文只是從技術(shù)角度來闡述如何使用Python來玩WIFI, 并不建議大家做任何破壞性的操作和任何不當(dāng)?shù)男袨椤?/p>
4.總結(jié)
為了能夠快速查看 Wi-Fi 密碼,我們介紹了兩種方法:一種是通過 Windows 的 Wi-Fi 屬性查看密碼,另一種是使用Python 中的 subprocess 模塊來執(zhí)行命令行獲取密碼;
另外呢,有個名為 PyWifi 的第三方庫,它可以用于操作 Wi-Fi,并提供了簡單的 API 來獲取 Wi-Fi 信息。比較適合我們獲取到該網(wǎng)絡(luò)的信息,以及使用 pywifi 模塊實現(xiàn)一些更高級的功能,例如檢測 Wi-Fi 網(wǎng)絡(luò)的質(zhì)量、分析數(shù)據(jù)流量等等。
到此這篇關(guān)于詳解Python如何實現(xiàn)查看WiFi密碼的文章就介紹到這了,更多相關(guān)Python查看WiFi密碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決pytorch?model代碼內(nèi)tensor?device不一致的問題
這篇文章主要介紹了pytorch?model代碼內(nèi)tensor?device不一致的問題,本文給大家分享完美解決方案,對pytorch?tensor?device不一致問題解決方案感興趣的朋友跟隨小編一起看看吧2023-07-07
Python使用bcrypt?或?Passlib?對系統(tǒng)用戶密碼進(jìn)行哈希和驗證處理操作
在Python?開發(fā)中,我們可以引入bcrypt?或?Passlib?對系統(tǒng)用戶密碼進(jìn)行哈希和驗證處理,以及介紹使用其他類庫實現(xiàn)常規(guī)加解密處理操作,需要的朋友可以參考下2024-08-08
膠水語言Python與C/C++的相互調(diào)用的實現(xiàn)
這篇文章主要介紹了膠水語言Python與C/C++的相互調(diào)用的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05
Python3利用openpyxl讀寫Excel文件的方法實例
這篇文章主要給大家介紹了關(guān)于Python3利用openpyxl讀寫Excel文件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
python使用MySQLdb訪問mysql數(shù)據(jù)庫的方法
這篇文章主要介紹了python使用MySQLdb訪問mysql數(shù)據(jù)庫的方法,實例分析了Python使用MySQLdb模塊操作mysql數(shù)據(jù)庫的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-08-08

