Python说“万能钥匙”不可见密码,立马写了个脚本解决了
Posted 梦子mengy7762
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python说“万能钥匙”不可见密码,立马写了个脚本解决了相关的知识,希望对你有一定的参考价值。
学习python练手,脚本方便获取电脑里存储过的所有WiFi密码,其原理是自动化"netsh wlan show profiles"的查询过程,后通过正则匹配获取
私信小编01即可获取python学习资源
# subprocess 模块允许我们启动一个新进程,并连接到它们的输入/输出/错误管道,从而获取返回值
import subprocessimport re
# 用于判断OS的语言
import localeloc_lang = locale.getdefaultlocale()
# print(loc_lang[0])
# 代码中用到的正则匹配模式字符串,提取出来以便不同语言系统使用,默认支持中文英文,其他语言需要更改匹配语句
if loc_lang[0] == "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[0], 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[1], 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[2], profile_info_pass)
# print(password)
if not password:
wifi_profile["password"] = None
else:
wifi_profile["password"] = password[1]
wifi_list.append(wifi_profile) for i in range(len(wifi_list)):
print(wifi_list[i])
结果
你要不要也来试试,用 Python 测测你和女神的颜值差距(仅供娱乐,请勿联想) 如果真的遇到好的同事,那算你走运,加油,抓紧学到手。
python、爬虫技巧资源分享添加围鑫(同音):762459510
包含python, pythonweb、爬虫、数据分析等Python技巧,以及人工智能、大数据、数据挖掘、自动化办公等的学习方法。
打造从零基础到项目开发上手实战全方位解析!
以上是关于Python说“万能钥匙”不可见密码,立马写了个脚本解决了的主要内容,如果未能解决你的问题,请参考以下文章