看到论坛里的其他朋友做的密码查看器,觉得好玩,自己用python写了一个很简陋的查看器 ( :
帖子1
帖子2
import tkinter
from tkinter import ttk
import os
import re
cmd = "netsh wlan show profiles"
str0 = os.popen(cmd).read()
str1 = re.findall('(u6240u6709u7528u6237u914du7f6eu6587u4ef6...)(.*)', str0)
outList1 = []
outList2 = []
for i in str1:
cmd = "netsh wlan show profiles name="" + i[1] + "" key=clear"
str2 = os.popen(cmd).read()
output = re.search('(u5173u952eu5185u5bb9s*.s)(.*)', str2).group(2)
outList1.append(i[1])
outList2.append(output)
# GUI
top = tkinter.Tk()
top.geometry("250x60")
top.title("Wifi密码查看器")
lab1 = tkinter.Label(top, text="Wifi : ")
lab2 = tkinter.Label(top, text="PassWord : ")
lab1.grid(row=0)
lab2.grid(row=1)
entry = tkinter.Entry(top)
entry.grid(row=1, column=1)
cbox = ttk.Combobox(top)
cbox.grid(row=0, column=1)
cbox["value"] = outList1
def func(cbox):
index = cbox.current()
entry.delete(0, tkinter.END)
entry.insert(0, outList2[index])
cbox.bind("<<ComboboxSelected>>",lambda event:func(cbox))
top.mainloop()
文件过大了,放到阿里云了
阿里云
https://www.aliyundrive.com/s/GZR44GScvZq
第一次修改
由于通过命令行读取密码很容易有bug,因此改用读取WLAN配置文件的方式.
原理:
以管理员身份打开cmd,输入
netsh wlan export profile folder=C: key=clear.
会生成一系列WLAN的配置文件(包括wifi的明文密码)
import tkinter
from tkinter import ttk
import os
import tkinter.messagebox
import xml.etree.ElementTree
import time
# 生成WLAN配置文件
cmd = "mkdir C:ProgramDatawlanPasswordView"
os.popen(cmd)
cmd = "netsh wlan export profile folder=C:ProgramDatawlanPasswordView key=clear"
os.popen(cmd)
time.sleep(1)
# 解析XML
file_list = os.listdir('C:ProgramDatawlanPasswordView')
wlan_list = []
for i in file_list:
if os.path.splitext(i)[1] == '.xml':
wlan_list.append(i)
for i in wlan_list:
if i[0:4] == 'WLAN':
pass # success
else:
wlan_list.remove(i)
# 生成名称及对应的密码
list_name = []
list_password = []
for i in wlan_list:
root = xml.etree.ElementTree.parse('C:ProgramDatawlanPasswordView\' + i).getroot()
list_name.append(root[0].text)
if root[4][0][0][0].text == 'open':
list_password.append("无密码")
else:
list_password.append(root[4][0][1][2].text)
# GUI
top = tkinter.Tk()
top.geometry("300x100")
top.title("Wifi密码查看器")
mainmenu = tkinter.Menu(top)
lab1 = tkinter.Label(top, text="Wifi : ")
lab2 = tkinter.Label(top, text="PassWord : ")
lab1.grid(row=0)
lab2.grid(row=1)
entry = tkinter.Entry(top)
entry.grid(row=1, column=1)
cbox = ttk.Combobox(top)
cbox.grid(row=0, column=1)
cbox["value"] = list_name
def func(cbox):
index = cbox.current()
entry.delete(0, tkinter.END)
entry.insert(0, list_password[index])
def doHelp():
tkinter.messagebox.showinfo("Help",
"1.请以管理员权限运行
"
"2.该程序会在C:ProgramDatawlanPasswordView下生成一系列以WLAN开头,后缀名为'.xml'的WLAN配置文件,可随意删除
"
"3.只能查看已保存的WiFi密码 ")
mainmenu.add_command(label="Help", command=doHelp)
cbox.bind("<<ComboboxSelected>>", lambda event: func(cbox))
top.config(menu=mainmenu)
top.mainloop()
阿里云:
https://www.aliyundrive.com/s/68qiVQ8LDN4
© 版权声明
文章版权归作者所有,未经允许请勿转载。如内容涉嫌侵权,请在本页底部进入<联系我们>进行举报投诉!
THE END


















- 最新
- 最热
只看作者