一个简单的密码管理GUI工具,我们将使用Python的tkinter库来创建图形用户界面,并使用sqlite3库来存储账号和密码。以下是主要功能的实现步骤:

- 创建用户界面
- 数据库操作:添加、删除、查询、更新账号
- 随机生成密码
下面是一个完整的示例代码:
import tkinter as tk
from tkinter import messagebox
import sqlite3
import random
import string
# 数据库初始化
conn = sqlite3.connect('password_manager.db')
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS passwords (
id INTEGER PRIMARY KEY,
account TEXT NOT NULL,
password TEXT NOT NULL
)
''')
conn.commit()
# 随机密码生成器
def generate_password(length, use_upper, use_lower, use_digits, use_special):
characters = ''
if use_upper:
characters += string.ascii_uppercase
if use_lower:
characters += string.ascii_lowercase
if use_digits:
characters += string.digits
if use_special:
characters += string.punctuation
if characters:
return ''.join(random.choice(characters) for i in range(length))
else:
return ''
# 保存账号和密码到数据库
def save_password():
account = account_entry.get()
password = password_entry.get()
if account and password:
cursor.execute('INSERT INTO passwords (account, password) VALUES (?, ?)', (account, password))
conn.commit()
messagebox.showinfo('Success', 'Account and Password saved successfully!')
else:
messagebox.showwarning('Input Error', 'Account and Password cannot be empty!')
# 查询账号密码
def query_password():
account = account_entry.get()
cursor.execute('SELECT password FROM passwords WHERE account = ?', (account,))
result = cursor.fetchone()
if result:
password_entry.delete(0, tk.END)
password_entry.insert(0, result[0])
else:
messagebox.showwarning('Not Found', 'Account not found!')
# 更新账号密码
def update_password():
account = account_entry.get()
password = password_entry.get()
cursor.execute('UPDATE passwords SET password = ? WHERE account = ?', (password, account))
conn.commit()
messagebox.showinfo('Success', 'Password updated successfully!')
# 删除账号密码
def delete_password():
account = account_entry.get()
cursor.execute('DELETE FROM passwords WHERE account = ?', (account,))
conn.commit()
messagebox.showinfo('Success', 'Account deleted successfully!')
# 生成随机密码
def generate_and_save_password():
account = account_entry.get()
length = int(length_entry.get())
use_upper = upper_var.get()
use_lower = lower_var.get()
use_digits = digits_var.get()
use_special = special_var.get()
password = generate_password(length, use_upper, use_lower, use_digits, use_special)
password_entry.delete(0, tk.END)
password_entry.insert(0, password)
save_password()
# GUI界面
root = tk.Tk()
root.title('Password Manager')
tk.Label(root, text='Account').grid(row=0, column=0)
tk.Label(root, text='Password').grid(row=1, column=0)
tk.Label(root, text='Password Length').grid(row=2, column=0)
account_entry = tk.Entry(root)
account_entry.grid(row=0, column=1)
password_entry = tk.Entry(root)
password_entry.grid(row=1, column=1)
length_entry = tk.Entry(root)
length_entry.grid(row=2, column=1)
upper_var = tk.BooleanVar()
lower_var = tk.BooleanVar()
digits_var = tk.BooleanVar()
special_var = tk.BooleanVar()
tk.Checkbutton(root, text='大写字母', variable=upper_var).grid(row=3, column=0, sticky='W')
tk.Checkbutton(root, text='小写字母', variable=lower_var).grid(row=3, column=1, sticky='W')
tk.Checkbutton(root, text='数字', variable=digits_var).grid(row=4, column=0, sticky='W')
tk.Checkbutton(root, text='特殊字符', variable=special_var).grid(row=4, column=1, sticky='W')
tk.Button(root, text='保存', command=save_password).grid(row=5, column=0)
tk.Button(root, text='查询', command=query_password).grid(row=5, column=1)
tk.Button(root, text='更新', command=update_password).grid(row=6, column=0)
tk.Button(root, text='删除', command=delete_password).grid(row=6, column=1)
tk.Button(root, text='生成并保存', command=generate_and_save_password).grid(row=7, column=0, columnspan=2)
root.mainloop()
功能介绍:
- 界面布局:使用
tkinter创建简洁的界面,包括账号、密码输入框和各种操作按钮。 - 数据库操作:通过
sqlite3实现基本的数据库操作,包括创建表、插入、查询、更新和删除记录。 - 随机密码生成:根据用户选择的参数(长度、大写字母、小写字母、数字、特殊字符)生成随机密码,并自动保存到数据库。
使用步骤:
- 输入账号和密码:在相应的输入框中输入账号和密码,并点击“保存”按钮保存到数据库。
- 查询密码:输入账号后,点击“查询”按钮查询数据库中保存的密码。
- 更新密码:输入账号和新密码后,点击“更新”按钮更新数据库中的密码。
- 删除账号:输入账号后,点击“删除”按钮从数据库中删除该账号及其密码。
- 生成随机密码:输入账号和密码长度,选择密码组成方式,点击“生成并保存”按钮生成随机密码并保存到数据库。
公众号回复:【密码管理器】,即可获取
当前文章价值3.36元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

评论已关闭!