用Python脚本能获取Wifi密码么?能。

news2024/11/25 7:09:01

注意,本文不是破解 WIFI 密码,当然你把程序发给别人再获取对方密码,那是社会工程学。

文章目录

    • ⛳️ 实战场景与 `subprocess` 模块介绍
    • ⛳️ Python 获取本地 Wifi 密码

⛳️ 实战场景与 subprocess 模块介绍

这篇博客给大家带来一个小小的案例,使用 Python 脚本获取本地电脑记录的所有 Wifi 密码。

先介绍一下用到的模块 subprocess,看模块名就知道这是进程模块,它可以让我们生成新的进程,并对进行进行管理。

模块中的常用函数,如下所示。

  • subprocess.run():执行指定命令,等待执行完成后返回一个包含执行结果的 CompletedProcess 类对象;
  • subprocess.call():执行指定命令,返回命令执行状态,与 os.system(cmd) 功能类似;
  • subprocess.check_call():执行指定命令,如果执行成功返回状态码,否则抛出异常;
  • subprocess.check_output() :执行指定命令,如果执行状态码为 0,返回执行结果,否则抛出异常;
  • subprocess.getoutput():接收字符串格式的命令,执行并返回执行结果,与之相同的函数有 os.popen(cmd).read()
  • subprocess.getstatusoutput():执行命令,返回一个元组(命令执行状态,命令执行结果)。

使用这个模块还有一些注意事项。

  1. 官方建议最新版本的 Python,优先使用 subprocess.run()
  2. 上述所有函数都是通过封装 subprocess.Popen() 实现的高级函数,所以想实现复杂功能,可以通过它来实现;
  3. subprocess.getoutput()subprocess.getstatusoutput() 安全性较低。

既然优先使用 subprocess.run() 方法,那我们看一下其语法格式。

subprocess.run(args, *, stdin=None, input=None, stdout=None, stderr=None, capture_output=False, shell=False, cwd=None, timeout=None, check=False, encoding=None, errors=None, text=None, env=None, universal_newlines=None)

参数说明如下:

  • args:要执行的 shell 命令,需要传入字符串或者字符串参数列表;
  • stdinstdoutstderr:子进程的标准输入,输出和错误;
  • timeout:命令超时时间;
  • check:默认为 False,如果设置为 True,则当进程退出状态码不是 0 的时候,抛出 CalledProcessError 异常;
  • encoding:如果设置该参数,则 stdinstdoutstderr 可以接收字符串数据,并以该编码进行编码,否则只接收字节类型数据;
  • shell:设置命令是否通过 Shell 执行。

有些这些基础参数说明之后,就可以调用最简单的 Shell 命令了,例如查看本地 pip 包安装清单。

import subprocess

subprocess.run(["pip","list"])

运行代码,自行查看结果,当然也可以把返回值捕获到一个变量中,查看一下返回对象类型。

import subprocess

ret = subprocess.run(["pip","list"])
print(ret)

输出结果如下所示:

CompletedProcess(args=['pip', 'list'], returncode=0)

此时返回的是 CompletedProcess 类的对象实例,它表示的是结束进程之后的状态心虚,包含如下属性。

  • args:该进程执行的命令;
  • returncode:退出状态码,为 0 表示进程成功运行,负值-N 表示进程被信号 N 终止;
  • stdout:从进程捕获到的输出信息;
  • stderr:从进程捕获到的错误信息。

🍁 有了上述知识铺垫之后,就可以完成 Python 获取本地 Wifi 密码案例了 🍁

⛳️ Python 获取本地 Wifi 密码

获取本地 wifi 密码,先通过 CMD 命令实现,分为两步,如下所示。
第一步,获取所有用户配置文件,其结果为当前电脑连接过的 wifi 名称。

netsh wlan show profiles

得到的结果如下所示。
在这里插入图片描述
这里仅在本机中找到了一个配置文件 realme GT Neo2T,然后通过下述命令查看 Wifi 密码。
第二步,获取上述配置文件对应的密码。

netsh wlan show profile name="realme GT Neo2T" key=clear

可以在运行结果中找到保存密码,如下所示。
在这里插入图片描述
有了上述两条 CMD 命令,我们将其应用到 Python 中,就实现了本案例诉求。

将 CMD 命令翻译为 Python 代码,首先获取所有 wifi 信息。

import subprocess

# 获取本机wifi列表
output = subprocess.run(['netsh', 'wlan', 'show', 'profiles'], capture_output=True).stdout.decode('gbk').split('\n')
print(output)
wifi_list = [item.split(':')[1][1:-1] for item in output if "所有用户配置文件" in item]

print(wifi_list)

接下来执行第二条命令,获取指定 wifi 密码。

# 获取 wifi 密码
for wifi in wifi_list:
    ret = subprocess.run(['netsh', 'wlan', 'show', 'profile', f'name={wifi}', 'key=clear'],
                             capture_output=True).stdout.decode('gbk', errors='ignore').split('\n')

    print(ret)
    results = [item.split(':')[1][1:-1] for item in ret if "关键内容" in item]
    print(f'{wifi} 密码:{results[0] if len(results)>0 else "无" }')

最终的运行结果如下所示。

realme GT Neo2T 密码:12345678

💰💰 完成本案例!

📢📢📢📢📢📢
💗 你正在阅读 【梦想橡皮擦】 的博客
👍 阅读完毕,可以点点小手赞一下
🌻 发现错误,直接评论区中指正吧
📆 橡皮擦的第 752 篇原创博客

从订购之日起,案例 5 年内保证更新

  • ⭐️ Python 爬虫 120,点击订购 ⭐️
  • ⭐️ 爬虫 100 例教程,点击订购 ⭐️

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

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

相关文章

魏副业而战:做闲鱼比打工强

我是魏哥,与其在家躺平,不如魏副业而战! 学员小D做闲鱼又赚了122元,并在社群中晒了收入截图,大家纷纷点赞。 小D说,做闲鱼比打工强,一边聊天,一边赚钱,很喜欢这种赚钱方…

多线程服务器端的实现

理解线程的概念 引入线程的背景 多进程模型的缺点 ①、创建进程的过程会给操作系统带来相当沉重的复旦 ②、为了完成进程间数据交换,需要特殊的IPC技术 ③、每秒少则数十次、多则数千次的“上下文切换”是创建进程时最大的开销(主要) 线…

2022实验室更新 DBCO-NH2,DBCO-Amine 叠氮化物功能化化合物

DBCO(二苯并环辛炔) 氨基衍生物,可与含有羧基的生化小分子形成稳定酰胺键连接。DBCO-NHS酯是一种与胺反应的化合物,可用于修饰含胺分子(在水性介质中的溶解度有限)。它与伯胺(例如赖氨酸的侧链氨基或多肽的N端氨基)在中性或弱碱性pH下反应形成共价键。这…

某政府门户网站维护项目运维方案

一.1 运维总体原则 一.1.1 整体性原则 我们将综合考虑XXX目前所有门户网站相关应用系统的现状,提出整体的运行维护策略,有效保障系统运行中各环节的不间断运行,并综合使用不同层次的技术手段,为应用系统和系统依托的基础环境提供全…

【AI理论学习】多模态介绍及当前研究方向

多模态介绍及当前研究方向什么是多模态?多模态的任务和数据集有哪些?多种模态融合的方式有哪些?多模态任务的研究方向有哪些?参考资料什么是多模态? 什么是多模态?多模态指的是多种模态的信息,…

Golang入门笔记(8)—— init 函数

init 函数 : 每一个源文件都可以包含一个init函数,该函数会在 程序入口main函数执行前 ,被Go运行的框架进行调用。 测试代码: package mainimport ("fmt" )func init() {fmt.Println("init...") }func main(…

vue 项目源码映射失败问题解决

文章目录vue 项目源码映射失败问题解决前言解决方案效果参考vue 项目源码映射失败问题解决 前言 不知何时起,项目控制台调试进入源代码变成编译后的文件了,调试起来十分不便,强迫症十分难受(像是自己英语水平一般,基…

人工智能:PyTorch深度学习框架介绍

目录 1、PyTorch 2、PyTorch常用的工具包 3、PyTorch特点 4、PyTorch不足之处 今天给大家讲解一下PyTorch深度学习框架的一些基础知识,希望对大家理解PyTorch有一定的帮助! 1、PyTorch PyTorch是一个基于Torch的Python机器学习框架。它是由Facebook的人工…

Android Studio实现记单词App,背完四六级一次过~

项目目录一、项目概述二、主要技术三、开发环境四、详细设计1、数据库2、单词详情3、搜索单词五、运行演示一、项目概述 本系统包含高考、四级、六级、托福和雅思词汇五个章节。每个章节分为多个单元,每个单元又包含上百个词汇。可以在单元列表查询单词&#xff0c…

JavaScript基础(12)_构造函数、this

我们每次创建对象时,常常会遇到属性和方法大量相同的情况,如果每次都创建相似的对象,代码就显得冗长多余,所以为了优化,我们往往利用函数调用的形式来简化这些代码,因为普通函数建立的对象并不能区分不同的…

Spark 3.0 - 2.机器学习核心 DataFrame 应用 API 与操作详解

目录 一.引言 二.创建 DataFrame 1.CreateDataFrame 2.RDD toDF By Spark implicits 3.By Read Format File 三.常用处理 API 1.select 选择 2.selectExpr 表达式 3.collect / collectAsList 收集 4.count 统计 5.limit 限制 6.distinct 去重 7.filter 过滤 8.ma…

Matlab:创建分类数组

Matlab:创建分类数组基于字符串数组创建分类数组添加新元素和缺失的元素基于字符串数组创建有序分类数组基于分 bin 数值数据创建有序分类数组此示例说明如何创建分类数组。categorical 是一个数据类型,用来存储值来自一组有限离散类别的数据。这些分类可…

FTX 深度数据复盘

Nov 2022, Sabrina Data Source: Footprint Analytics Dashboards 11月2日,Coindesk 公布了 Alameda 的私人财务文件,这是一家由 FTX 创始人 Sam Bankman-Fried 拥有的风险投资和交易公司,与该交易所密切相关,从而引发了加密货币…

Spring Framework 6.0 框架

Spring Framework 6.0.0 现已正式发布。 “这是 2023 年及以后新一代框架的开始,拥抱了 OpenJDK 和 Java 生态系统中当前和即将到来的创新。同时,我们将其精心设计为针对现代运行时环境的 Spring Framework 5.3.x 的直接升级。” 作为核心框架的重大修订…

脑肽载体Angiopep-2、906480-05-5、TFFYGGSRGKRNNFKTEEY

Angiopep-2 hydrochloride 是脑肽载体。抗肿瘤药物与 Angiopep-2 肽载体的结合可提高其在脑癌中的活性. Angiopep-2 hydrochloride is a brain peptide vector. The conjugation of anticancer agents with the Angiopep-2 peptide vector could increase their efficacy in th…

【正点原子FPGA连载】 第三章 硬件资源详解 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692450874670 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第三章 硬件资源…

提升Mac运行速度的十大小技巧,你用过几个?

经常听到小伙伴在抱怨PC电脑很慢,但是其实Mac电脑随着用的时间增长,运行速度也会越来越慢,那么造成Mac运行慢的原因有很多,可能是操作系统过时未更新,也可能是内存(RAM)不足,以下小编…

终于把下载安装更新的功能整出来了,记录关键点

我的第一个安卓应用终于也有了APP内安装更新的功能(赶上末班车了吗),记录一些关键点,方方面面的。 托管检测更新和下载服务 由于没有服务器,这两个核心功能可以托管到一些比较好的平台。检测我用的是蒲公英分发&…

MySQL8.0分析查询语句EXPLAIN

文章目录学习资料分析查询语句EXPLAINidselect_typepartitions(可略)type【重点】possible_keys和keykey_len【重点】refrows【重点】filteredExtra【重点】EXPLAIN四种输出格式传统格式JSON格式SHOW WARNINGS的使用学习资料 【MySQL数据库教程天花板&a…

《深度学习进阶 自然语言处理》第五章:RNN通俗介绍

文章目录5.1 概率和语言模型5.1.1 概率视角下的word2vec5.1.2 语言模型5.1.3 将CBOW模型用作语言模型的效果怎么样?5.2 RNN5.2.1 循环神经网络5.2.2 展开循环5.2.3 Backpropagation Through Time5.2.4 Truncated BPTT5.2.5 Truncated BPTT的mini-batch学习5.3 RNN的…