随着我们应用账号的增多,我们需要记住的账号密码就会越来越多,而单一的密码是非常危险的,如果有人恶意破译了你的密码,那么所有账号将都会面临威胁;如果用文档的方式存储,这种方式就更加危险了,丢了一个文件将都无所遁形;这时候我们可以做一个密码黑匣子,将数据加密在这个黑匣子里,当我们需要的时候再将其读取出来就好了(此项目纯属对pyperclip模块进行学习,这种方式也并非一定安全)
接下来我们来学习一下pyperclip模块的使用方法:
- pyperclip模块是第三方库,我们需要对它进行安装: pip install pyperclip即可;
- pyperclip模块提供了两个方法给我们:copy()复制程序内的数据、paste()复制程序外的数据
好了,我们现在已经知道了pyperclip模块的用法,马上来做一个密码黑匣子吧!
- 设计程序界面
import pyperclip from tkinter import * from tkinter import ttk window = Tk() window.geometry('300x150') window.title('密码黑匣子') textvar = StringVar() textvar.set('请输入你的密码:') Label(window,textvariable=textvar).pack() pw = Entry(window,width=15) pw.pack() pw_value = { # 我们将账号和密码都存放在这里面 '腾讯视频':'123', '爱奇艺':'456', '优酷':'789' } def run(): print('占位') Button(window,text='确定',command=run).pack() pw_box = ttk.Combobox(window,width=15) pw_box.pack() pw_box['value'] = tuple(pw_value) pw_box.current(0) window.mainloop()
- 完成功能代码
state = False # 状态位,记录了软件是否解锁 def run(): global state if state: zh = pw_box.get() textvar.set('{}的密码已复制到粘贴板,请粘贴!'.format(zh)) pyperclip.copy(pw_value[zh]) else: if pw.get() == 'qwe123': state = True textvar.set('密码正确,请选择想要获取的密码') Button(window,text='确定',command=run).pack()
- 完整代码
import pyperclip from tkinter import * from tkinter import ttk window = Tk() window.geometry('300x150') window.title('密码黑匣子') textvar = StringVar() textvar.set('请输入你的密码:') Label(window,textvariable=textvar).pack() # 用于显示提示信息 pw = Entry(window,width=15) # 用于输入密码 pw.pack() state = False # 用于保存是否解锁密码 pw_value = { # 用于保存账号和密码信息 '腾讯视频':'123', '爱奇艺':'456', '优酷':'789' } def run(): global state if state: # 解锁状态 zh = pw_box.get() # 获取下拉列表的值 textvar.set('{}的密码已复制到粘贴板,请粘贴!'.format(zh)) #修改提示信息 pyperclip.copy(pw_value[zh]) # 将密码提取出来并复制到粘贴板上 else: if pw.get() == 'qwe123': # 判断密码是否正确 state = True textvar.set('密码正确,请选择想要获取的密码') Button(window,text='确定',command=run).pack() pw_box = ttk.Combobox(window,width=15) # 下拉列表显示账号信息 pw_box.pack() pw_box['value'] = tuple(pw_value) pw_box.current(0) window.mainloop()