随机密码生产器

python源码 import random import re import tkinter as tk a = 'abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ!@#%&*()<>{}+?123456789' def generate(n): #n表示密码位 s = 0 ddtt = \"\" # 初始化 ddtt 变量 while s == 0: ddtt = [] # 创建一个空列表 for i in range(n): # 循环n次 rand = random.randint(0, len(a)-1) # 生成随机数 ddtt.append(a[rand]) # 将随机数添加到列表中 ddtt = \"\".join(ddtt) # 将列表转换为字符串 if re.search(r'[a-z]', ddtt): # 判断字符串中是否包含小写字母 if re.search(r'[A-Z]', ddtt): # 判断字符串中是否包含大写字母 if re.search(r'[0-9]', ddtt): # 判断字符串中是否包含数字 if re.search(r'[!@#%&*()<>{}+?]', ddtt): # 判断字符串中是否包含特殊字符 s = 1 # 满足条件,跳出循环 return ddtt # 返回生成字符串 def create_window(): \"\"\"创建一个带有两个文本框的简单GUI窗口\"\"\" # 创建主窗口 window = tk.Tk() window.title(\"随机密码生成\") # 设置窗口大小 window.geometry(\"220x250\") # 宽x高 (像素) # 添加输入文本标签 input_label = tk.Label(window, text=\"生成几位数:\") input_label.pack(pady=5) # 增加上下内边距 # 创建输入文本框 input_entry = tk.Entry(window) input_entry.insert(0, \"8\") input_entry.pack(pady=5) # 增加上下内边距 # 添加显示长度标签 length_label = tk.Label(window, text=\"随机密码生成:\") length_label.pack(pady=5) # 增加上下内边距 # 创建一个框架来放置显示长度文本框和复制按钮 frame = tk.Frame(window) frame.pack(pady=5) # 创建显示长度文本框,初始值为空 length_entry = tk.Entry(frame) length_entry.pack(pady=5) # 增加上下内边距 def copy_text(): text_to_copy = length_entry.get() # 获取要复制的文本内容 window.clipboard_clear() # 清空剪贴板内容 window.clipboard_append(text_to_copy) # 将文本内容添加到剪贴板 # 创建一个按钮 button_1 = tk.Button(frame, text=\"复制\", command=copy_text) button_1.pack(pady=5) # 增加上下内边距 # 定义按钮点击事件的处理函数 def update_length(): input_text = input_entry.get() # 获取输入文本 num = generate(int(input_text)) # 调用generate函数 length_entry.delete(0, tk.END) # 清空长度文本框 length_entry.insert(0, str(num)) # 将生成的密码插入到长度文本框中 # 创建一个按钮 button = tk.Button(window, text=\"更新密码\", command=update_length) button.pack(pady=10) # 增加上下内边距 window.bind(lambda event: button.invoke()) # 绑定回车键触发按钮 # 运行主事件循环 window.mainloop() if __name__ == \"__main__\": create_window()

2025-09-17 · 1 min · wuhongbo