Python如何实现查看WiFi密码?

news2024/11/29 8:39:50

由于最近公司加强对无线安全的管理,wifi密码从以前的12345678,变成复杂难记的一串,导致我时常忘记WIFI密码,而遭受同事的“毒打”。由于我不是那种喜欢打扰同事认真工作的人,于是,我决定用python来试试,看看能不能读取到已连接过WIFI的密码,这样就不用老是叨扰别人了!

hahah

1. windows查看WIFI密码的方法

经过我的一番思考和查阅资料(搜索引擎),原理大致是这样。 通过windows的wifi属性查看密码。这种方式,操作起来相当麻烦,一般人根本找不到。即使第一次找到了,找第二次也要折磨死人。

windows查看wifi密码

另外,我们可以使用命令行来实现上述操作:

netsh wlan show profiles

列出已连接wifi的列表 然后再使用命令 ``netsh wlan show profiles WiFi名称 key=clear:

netsh wlan show profiles ZXQ key=clear

查看安全设置获得密码:

安全设置

上面的方式,仍然比较麻烦,对于我这种懒人来说,实在是有点聒噪!我就想快速的查看密码,不要输入!

想到python也可以执行cmd命令,那么第二种命令行的方式,不就可以用python来实现了吗?!

2. 使用subprocess模块

subprocessPython标准库中的一个模块,用于在Python程序中执行外部命令或子进程。它可以通过创建子进程并与其进行通信,来调用系统命令或其他可执行文件。

subprocess模块提供了多个函数来调用子进程,如subprocess.run()subprocess.Popen()等。这些函数可以执行命令并返回执行结果,也可以通过传递参数和读取标准输入输出进行进程间的通信。

import subprocess

def get_wifi_password():
    # 调用系统命令,获取WiFi密码
    result = subprocess.check_output(['netsh', 'wlan', 'show', 'profile'])
    result = result.decode('gbk')  # 将命令输出转换为字符串

    # 提取WiFi名称
    profiles = [i.split(':')[1][1:-1] for i in result.split('\n') if '所有用户配置文件' in i]

    # 获取各个WiFi网络的密码
    passwords = []
    for profile in profiles:
        password = subprocess.check_output(['netsh', 'wlan', 'show', 'profile', 'name=' + profile, 'key=clear'])
        password = password.decode('gbk')  # 转换为字符串
        password = [i.split(':')[1][1:-1] for i in password.split('\n') if '关键内容' in i]
        passwords.append((profile, password[0]))

    return passwords

# 调用函数获取WiFi密码
wifi_passwords = get_wifi_password()

# 打印WiFi名称和密码
for wifi in wifi_passwords:
    print(f'WiFi名称:{wifi[0]},密码:{wifi[1]}')

python查看wifi密码

Got it!, 有了这个脚本,这不就是点一下的事么。在这个示例代码中,我们使用subprocess.check_output 函数调用了 netsh 命令来获取已连接WiFi网络的信息。获取到的信息中包含WiFi网络的名称和密码。

送给公司行政的小姐姐用,下次她见到我,不得叫一声大哥?

3. pywifi模块暴力破解

PyWifi 是一个用于操作WiFi的第三方库,提供了方便的API以获取WiFi信息。其本身并不支持获取已连接过的wifi的密码。该库主要用于连接、断开以及扫描wifi网络。

首先,我们需要使用pip命令来安装pywifi库:

pip install pywifi

由于此模块基于 comtypes 模块,因此同时需要下载此模块:

pip install comtypes

使用 PyWifi,首先我们需要创建一个PyWifi 对象:

#-*-coding:utf-8-*-
import pywifi,time
from pywifi import const

def scan_wifi():
    wifi = pywifi.PyWiFi()
    iface = wifi.interfaces()[0] #acquire the first Wlan card,maybe not
    iface.scan() # 扫描wifi
    time.sleep(1) # 休息一下
    basewifi = iface.scan_results()

    for i in basewifi:
        print("wifi scan result:{}".format(i.ssid))
        print("wifi device MAC address:{}".format(i.bssid))

        # 尝试连接wifi
        profile = pywifi.Profile()                          #配置文件
        profile.ssid = i.ssid                        #wifi名称
        profile.auth = const.AUTH_ALG_OPEN                  #需要密码
        profile.akm.append(const.AKM_TYPE_WPA2PSK)          #加密类型
        profile.cipher = const.CIPHER_TYPE_CCMP             #加密单元
        profile.key = gen_key()                            #wifi密码

        iface.remove_all_network_profiles()                #删除其它配置文件
        tmp_profile = iface.add_network_profile(profile)   #加载配置文件
        iface.connect(tmp_profile)
        time.sleep(5)
        if iface.status() == const.IFACE_CONNECTED:
            print("connect successfully!")
        else:
            print("connect failed!")
        time.sleep(1)
    return basewifi

def gen_key():
    # 生成wifi破解密码,通用做法是读取密码字典库
    pass

if __name__ == '__main__':
    scan_wifi()

因此,小伙伴们要当心哦,wifi密码设置要复杂!否则被人偷用网络都不知道哦! 当然咯,这个暴力破解的方法耗时也不稳定,而且也不一定正确,本文只是从技术角度来阐述如何使用Python来玩WIFI, 并不建议大家做任何破坏性的操作和任何不当的行为。

上一篇:Python中的交互式数据可视化工具Streamlit

4.总结

为了能够快速查看 Wi-Fi 密码,我们介绍了两种方法:一种是通过 Windows 的 Wi-Fi 属性查看密码,另一种是使用Python 中的 subprocess 模块来执行命令行获取密码;

另外呢,有个名为 PyWifi 的第三方库,它可以用于操作 Wi-Fi,并提供了简单的 API 来获取 Wi-Fi 信息。比较适合我们获取到该网络的信息,以及使用 pywifi 模块实现一些更高级的功能,例如检测 Wi-Fi 网络的质量、分析数据流量等等。

如果你觉得文章还不错,记得关注公众号: 锅外的大佬 锅外的大佬博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1176727.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Spring】注解

文章目录 1. 前言2.注解开发的准备工作3. IOC相关注解DI相关注解 4. DI相关注解4.1 Value4.2 AutoWired4.3 Qualifier 5. xml配置文件相关注解5.1 Configuration5.2 ComponensScan 6.Bean注解7. PropertySource 1. 前言 Spring支持使用注解代替xml配置,注解开发可以简化配置. …

如何备战秋季招聘:从规划到面试的全方位攻略

如何备战秋季招聘:从规划到面试的全方位攻略 随着秋天的到来,秋季招聘也进入了高峰期。对于即将毕业的同学们来说,抓住这个黄金时期,找到一份满意的工作至关重要。本文将为你提供一份全面的秋季招聘攻略,从规划到面试&…

<微信小程序>《微信小程序开发笔记》(二)

《微信小程序开发笔记》(二) 1 程序开发1.1 原则(自己感悟)1.2 架构1.3 开发模式 2 建立项目3 微信代码构成3.1 JSON 配置文件3.2 WXML 模板文件3.3 WXSS 样式文件3.4 JS 脚本逻辑文件 1 程序开发 1.1 原则(自己感悟&…

吴翰清《计算》重磅来袭,为了可计算的价值,写给所有人!

《计算》终于出版了 计算,为了可计算的价值 撰文 | 吴翰清 三年前在新冠疫情大爆发期间,当我决心动笔写下第一行文字时,从来没想到过写作《计算》的工程会如此之大。 它横跨了人类文明三千年的数学史和计算机科学史,从数字的起…

【JMeter】定时器分类以及场景介绍

1. 定时器分类 固定定时器 作用:请求之间设置等待时间应用场景:查询商品列表后,去查看列表商品详情页。针对商品列表数据量比较大的,响应时间会比较长,就需要设置等待时间然后去查看商详 2.定时器的作用域&#xff1…

《005.SpringBoot+vue之学生选课管理系统01》

《005.SpringBootvue之学生选课管理系统01》 项目简介 [1]本系统涉及到的技术主要如下: 推荐环境配置:DEA jdk1.8 Maven MySQL 前后端分离; 后台:SpringBootMybatis; 前台:vueElementUI; [2]功能模块展示: 管理端 1…

渗透测试学习day1

文章目录 学习平台Starting Point靶机:Meow连接vpn创建靶机 解题过程Task 1Task 2Task 3Task 4Task 5Task 6Task 7Task 8 总结 学习平台 hackthebox Starting Point 靶机:Meow 难度:very easy 连接vpn创建靶机 步骤如下 打开linux虚拟…

开发环境eclipse的安装与配置详细教程(包括UML插件 如何汉化 JDK 代码补全等)

Eclipse开发环境的安装与配置 1.Eclipse安装与配置 1.将JDK与Eclipse这两个软件安装包放在一个文件夹下,方便之后安装使用。 2.安装JDK 在D:LeStoreDownload\java文件夹下另外新建三个文件夹分别命名为java、jdk和eclipse(分别用于Java、j…

NFTScan | 10.30~11.05 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期:2023.10.30~ 2023.11.05 NFT Hot News 01/ BAYC 系列 NFT 地板价回升至 30 ETH 10 月 30 日,据数据显示,Bored Ape Yacht Club(BAYC)系列 …

高速串行总线——SATA

SATA简介 SATA的全称是Serial Advanced Technology Attachment(串行高级技术附件,一种基于行业标准的串行硬件驱动器接口),它是一种电脑总线,主要功能是用作主板和大量存储设备(如硬盘及光盘驱动器)之间的数据传输 SA…

没有MES管理系统,先用数据采集设备能有用吗

在当前的数字化时代,企业纷纷意识到了数字化转型的重要性。数据被誉为新型生产要素,对于企业的运营和决策具有至关重要的作用。在数字化转型的过程中,许多企业面临着一个共同的问题:如何获取所需的数据? 有两家企业在…

实力控场,自成焦点!科士达工商业储能新品亮相上海SNEC储能展

11月1日,第八届SNEC ES 国际储能展在上海新国际博览中心盛大开幕。展会现场,科士达携工商业储能新品KAC120DS-BC233DE重磅亮相,该产品是继KAC50DP-BC100DE之后,科士达推出的又一重量级储能力作,完美覆盖用户侧工商业全…

Filter 和 Listener

Filter 表示过滤器。是JavaWeb三大组件(Servlet、Filter、Listener)之一。 过滤器可以把对资源的请求 拦截 下来。浏览器可以访问服务器上所有的资源,而在访问到这些资源之前可以使用过滤器拦截下来,也就是说在访问资源之前会先经…

微信小程序里怎么添加砍价活动

随着网络购物的普及,越来越多的消费者开始享受这种方便快捷的购物方式。而在这个大环境下,各种电商活动层出不穷,吸引了众多消费者的关注。而在这些活动中,砍价活动无疑是最受欢迎的一种。今天,我们就来聊一聊如何在小…

centos7 一键安装部署wvp-gb28181-pro

准备工作 下载finalshell工具 好用的shell工具,FinalShell_好用的shell软件-CSDN博客 设置服务器网络 ky10、centos7等linux系统修改网卡ip地址,并设置网卡开机自启_kylin配置ip-CSDN博客 wvp安装部署 上传文件到服务器 选择服务器上存储的路径&#…

Win10电脑更新显示缺少重要的安全和质量修复怎么解决?

在Win10电脑中用户点击更新系统,却收到了“你的设备中缺少重要的安全和质量修复”的提示,导致无法正常完成Win10系统的更新。下面小编给大家带来简单且有效的解决方法,解决后大家就能顺利完成Win10系统的升级,从而满足自己的个性化…

QML查看事件回调函数的参数

背景 QML里面,为事件写回调函数时,参数(形参)总是不确定是哪些。下面方式可以用来获取形参。 方法 方法一 打印控件类型 使用console.log,查看控件类型 MouseArea {id: mouseAreawidth: 100height: 100onPressed: {}…

taro 接入小程序原生语法代码包的配置

标题taro 接入小程序原生语法代码包的配置 1、微信小程序原生语法代码包拷贝到src目录下 2、config/index.js中配置拷贝原生代码包到编译后的目录中,并且增加编译排除原生代码包的配置 3、app.config.js中配置原生代码包路径、插件(建议分包引入&…

人民邮电出版社70周年庆暨异步社区8周年庆成功举办,和鲸Heywhale荣获异步社区“2023年度最佳合作伙伴”奖

10月28日,人民邮电出版社 70 周年庆暨异步社区 8 周年庆活动在北京召开,和鲸科技荣获异步社区“2023年度最佳合作伙伴”奖,和鲸科技社区运营负责人王煜倩作为代表出席。 本次活动回顾了人民邮电出版社与异步社区的发展历程,展示了…

Ionic 模块组件的理解

1 Ionic4.x 文件分析 1.1 app.module.ts 分析 Ionic 是一个基于 Angular 的移动应用开发框架,能帮助开发者使用 Web 技术(HTML5、CSS3、JavaScript)创建跨平台的应用程序。在 Ionic 应用程序中,app.module.ts 文件是整个应用程序的…