首先需要明确:本教程仅供学习与研究使用,请勿用于非法破解他人WiFi密码。
未经他人授权破解 WiFi 密码属于违法行为,涉嫌侵犯他人网络使用权与信息安全,仅可查看自己设备上已保存的合法 WiFi 密码。
一、安装 pywifi
二、构建 wifi 密码字典
一般来说,常见的WiFi密码是8位,而且只用数字和小写字母。所以我们就从这个字符池里随机选8个字符(可以重复),组合成密码,最后写入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()
三、利用Python进行WiFi密码有效性验证(仅供学习)
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_es")) 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) num += 1 print("-" * 38) # 返回WiFi列表 return wifi_name_list
四、运行效果
测试通过,成功获取WiFi密码并实现自动连接。
4.1 选好你要连的那个WiFi
4.2 生成/获取密码字典
最后还是需要特别提醒:本教程仅用于学习和研究目的,请勿非法破解他人 WiFi 密码。