获取Windows电脑WiFi密码
本帖最后由 Cookiesfly 于 2021-7-8 23:11 编辑学习python练手,脚本方便获取电脑里存储过的所有WiFi密码,其原理是自动化"netsh wlan show profiles"的查询过程,后通过正则匹配获取# subprocess 模块允许我们启动一个新进程,并连接到它们的输入/输出/错误管道,从而获取返回值
import subprocess
import re
# 用于判断OS的语言
import locale
loc_lang = locale.getdefaultlocale()
# print(loc_lang)
# 代码中用到的正则匹配模式字符串,提取出来以便不同语言系统使用,默认支持中文英文,其他语言需要更改匹配语句
if loc_lang == "zh_CN":
re_pattern = ["所有用户配置文件 : (.*)\r", "安全密钥 : 不存在", "关键内容 : (.*)\r"]
else:
re_pattern = ["All User Profile : (.*)\r", "Security key : Absent", "Key Content : (.*)\r"]
# 如果 capture_output 设为 true,stdout 和 stderr 将会被捕获
cmd_output = subprocess.run(["netsh", "wlan", "show", "profiles"], capture_output=True).stdout.decode('gbk')
# print(cmd_output)
wifi_names = (re.findall(re_pattern, cmd_output))
# print(wifi_names)
wifi_list = []
if len(wifi_names) != 0:
for name in wifi_names:
# 每一个wifi的信息存储在一个字典里
wifi_profile = {}
profile_info = subprocess.run(["netsh", "wlan", "show", "profiles", name],
capture_output=True).stdout.decode('gbk')
# print(profile_info)
# 判断wifi密码是否存储在windows计算机里,不存在则忽略
if re.search(re_pattern, profile_info):
continue
else:
wifi_profile["ssid"] = name
# 密码存在时,加上命令参数“key=clear”显示wifi密码
profile_info_pass = subprocess.run(["netsh", "wlan", "show", "profiles", name, "key=clear"],
capture_output=True).stdout.decode('gbk')
password = re.search(re_pattern, profile_info_pass)
# print(password)
if not password:
wifi_profile["password"] = None
else:
wifi_profile["password"] = password
wifi_list.append(wifi_profile)
for i in range(len(wifi_list)):
print(wifi_list)
本帖最后由 kumamiko 于 2021-7-15 16:31 编辑
我之前拿powershell写了一个,思路一样,netsh 命令+正则
(netsh wlan show profiles) | Select-String "\:(.+)$" | %{$name=$_.Matches.Groups.Value.Trim(); $_} | %{(netsh wlan show profile name="$name" key=clear)}| Select-String "(关键内容|Key Content)\W+\:(.+)$" | %{$pass=$_.Matches.Groups.Value.Trim(); $_} | %{ @{ '名称'=$name;'密码'=$pass }}
用了很多管道…… hj170520 发表于 2021-7-9 08:15
第一次 看到这个包的使用。
这个大体的思路是需要买些什么书来看吗?
我是这么干的 想要实现什么功能,然后搜索查找相关资料想办法实现
之前也没用过这个包 查询所有储存用代码可以,单个的就看wifi属性就行了 谢谢楼主分享,好好学习一下
感谢分享,虽然看不懂
厉害,支持 不错,我还没有学到这么高深,等能够看明白的时候学习一下 谢谢楼主分享~~~~~ 看你这么辛苦 还是赞一个吧 xp系统下可以看到:lol 谢谢分享