python实现的GUI密码生成器

2024-06-02 22:04 python实现的GUI密码生成器已关闭评论

一个基于 Tkinter 的密码生成器的简单实现:

import tkinter as tk
from tkinter import messagebox
import string
import random

class PasswordGenerator:
    def __init__(self, root):
        self.root = root
        self.root.title("密码生成器")

        self.passwords = []

        self.label_length = tk.Label(root, text="密码长度:")
        self.label_length.grid(row=0, column=0, padx=5, pady=5)
        self.entry_length = tk.Entry(root)
        self.entry_length.grid(row=0, column=1, padx=5, pady=5)

        self.checkbox_lower = tk.Checkbutton(root, text="小写字母", variable=tk.BooleanVar())
        self.checkbox_lower.grid(row=1, column=0, padx=5, pady=5)
        self.checkbox_upper = tk.Checkbutton(root, text="大写字母", variable=tk.BooleanVar())
        self.checkbox_upper.grid(row=1, column=1, padx=5, pady=5)
        self.checkbox_digit = tk.Checkbutton(root, text="数字", variable=tk.BooleanVar())
        self.checkbox_digit.grid(row=2, column=0, padx=5, pady=5)
        self.checkbox_special = tk.Checkbutton(root, text="特殊字符", variable=tk.BooleanVar())
        self.checkbox_special.grid(row=2, column=1, padx=5, pady=5)

        self.generate_button = tk.Button(root, text="生成密码", command=self.generate_password)
        self.generate_button.grid(row=3, columnspan=2, padx=5, pady=5)

        self.label_passwords = tk.Label(root, text="已生成的密码:")
        self.label_passwords.grid(row=4, columnspan=2, padx=5, pady=5)
        self.listbox_passwords = tk.Listbox(root, width=30, height=5)
        self.listbox_passwords.grid(row=5, columnspan=2, padx=5, pady=5)

    def generate_password(self):
        length = int(self.entry_length.get())

        if not any([self.checkbox_lower.get(), self.checkbox_upper.get(), self.checkbox_digit.get(), self.checkbox_special.get()]):
            messagebox.showwarning("警告", "请选择至少一种密码字符类型")
            return

        characters = ""
        if self.checkbox_lower.get():
            characters += string.ascii_lowercase
        if self.checkbox_upper.get():
            characters += string.ascii_uppercase
        if self.checkbox_digit.get():
            characters += string.digits
        if self.checkbox_special.get():
            characters += string.punctuation

        password = ''.join(random.choice(characters) for _ in range(length))
        self.passwords.append(password)
        self.listbox_passwords.insert(tk.END, password)

if __name__ == "__main__":
    root = tk.Tk()
    app = PasswordGenerator(root)
    root.mainloop()

这个密码生成器界面包含了以下功能:

  1. 提供了选项来选择密码的长度和字符类型(小写字母、大写字母、数字和特殊字符)。
  2. 可以点击“生成密码”按钮来生成密码,并将生成的密码记录在已生成的密码列表框中。

公众号回复:密码生成器,即可获取

当前文章价值1.87元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

你可能感兴趣的文章

来源:每日教程每日一例,深入学习实用技术教程,关注公众号TeachCourse
转载请注明出处: https://teachcourse.cn/3472.html ,谢谢支持!

资源分享

分类:python 标签:, ,
成员变量的隐藏和方法的重写 成员变量的隐藏和方法的重写
Android项目使用到的正则表达式详细介绍和示例说明 Android项目使用到的正则表达式
Android开发之枚举(Enum)在实际项目中的应用 Android开发之枚举(Enum)在实
Hashtable方法解析 Hashtable方法解析

评论已关闭!