因为业务需求,经常需要给新开的虚拟机新增用户和配置16位密码,而密码还经常得去网上搜在线密码生成器,想着还不如自己手写桌面应用。
1.界面设计
·密码长度可以做成下拉菜单,从8到16位任意选择
·点击生成的按钮
·将生成的密码显示在listbox里,这样可以方便复制
import tkinter as tk
class Calculator:
def __init__(self, root):
self.root = root
self.root.title("密码生成器(大小写字母数字及特殊符号")
self.root.geometry("800x380") # 设置窗口大小
if __name__ == "__main__":
root = tk.Tk()
#root.iconbitmap('logo.ico')
app = Calculator(root)
root.mainloop()
使用tk组件,生成一个背景板
2.创建并放置代码长度下拉菜单
self.length_var = tk.StringVar(value="8") # 默认值为8
length_label = tk.Label(root, text="密码长度:")
length_label.pack(pady=5)
length_combobox = ttk.Combobox(root, textvariable=self.length_var, values=list(range(8, 17)), width=5)
length_combobox.pack(pady=5)
3.生成密码按钮和显示密码listbox
generate_button = tk.Button(root, text="生成密码", command=self.generate_password)
generate_button.pack(pady=10)
self.password_listbox = tk.Listbox(root, font=("Arial", 12), width=50, height=10)
self.password_listbox.pack(pady=10)
4.生成随机密码方法
def generate_password(self):
length = int(self.length_var.get())
characters = string.ascii_letters + string.digits + "~!@#$%^&*()-+_=,."
password = ''.join(random.choice(characters) for _ in range(length))
self.password_listbox.insert(tk.END, password)
5.完整效果
6.最后一步打包成桌面exe应用
这里使用pyinstaller对项目进行打包 打开cmd或者Powershell
pyinstaller -F -w Gen-password.py
生成的exe文件存放在项目的dist目录下。