Python项目实战——用tkinter+pyperclip做一个密码黑匣子

随着我们应用账号的增多,我们需要记住的账号密码就会越来越多,而单一的密码是非常危险的,如果有人恶意破译了你的密码,那么所有账号将都会面临威胁;如果用文档的方式存储,这种方式就更加危险了,丢了一个文件将都无所遁形;这时候我们可以做一个密码黑匣子,将数据加密在这个黑匣子里,当我们需要的时候再将其读取出来就好了(此项目纯属对pyperclip模块进行学习,这种方式也并非一定安全)

接下来我们来学习一下pyperclip模块的使用方法:

  • pyperclip模块是第三方库,我们需要对它进行安装: pip install pyperclip即可;
  • pyperclip模块提供了两个方法给我们:copy()复制程序内的数据、paste()复制程序外的数据

好了,我们现在已经知道了pyperclip模块的用法,马上来做一个密码黑匣子吧!

  1. 设计程序界面
    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()
  2. 完成功能代码
    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()
  3. 完整代码
    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()

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值