python教程

Python随机密码生成脚本

我的站长站 2023-06-23 人阅读

Python随机密码生成脚本,去重复字符,可自定义长度和字符集,AI代写的。

import random
import string
import tkinter as tk
 
 
def generate_random_string():
    try:
        length = int(entry_length.get())
        if length <= 0:
            label_result.config(text="错误:长度必须是正整数")
            return ""
    except ValueError:
        label_result.config(text="错误:请输入一个整数")
        return ""
 
    allowed_chars = ""
 
    if var_upper.get():
        allowed_chars += string.ascii_uppercase
    if var_lower.get():
        allowed_chars += string.ascii_lowercase
    if var_digit.get():
        allowed_chars += string.digits
    if var_punct.get():
        allowed_chars += string.punctuation
 
    if not allowed_chars:
        label_result.config(text="错误:请至少选择一种字符集")
        return ""
 
    random_string = "".join(random.choice(allowed_chars)
                            for _ in range(length))
 
    def has_duplicates(s):
        return len(s) != len(set(s))
 
    def replace_duplicates(s):
        new_s = ""
        for ch in s:
            if s.count(ch) > 1:
                new_ch = random.choice(allowed_chars)
                new_s += new_ch
            else:
                new_s += ch
        return new_s
 
    def remove_duplicates(s):
        while has_duplicates(s):
            s = replace_duplicates(s)
        return s
 
    rs = remove_duplicates(random_string)
 
    return rs
 
 
def show_and_copy_random_string():
    random_string = generate_random_string()
 
    if random_string:
        label_result.config(text=random_string)
        window.clipboard_clear()
        window.clipboard_append(random_string)
 
 
window = tk.Tk()
window.title("随机字符串生成器")
window.geometry("400x300")
 
label_welcome = tk.Label(window, text="欢迎使用随机字符串生成器!")
label_welcome.pack()
 
label_length = tk.Label(window, text="请输入你想要生成的字符串长度(正整数):")
label_length.pack()
 
entry_length = tk.Entry(window)
entry_length.pack()
 
var_upper = tk.BooleanVar()
var_lower = tk.BooleanVar()
var_digit = tk.BooleanVar()
var_punct = tk.BooleanVar()
 
check_upper = tk.Checkbutton(window, text="大写字母", variable=var_upper)
check_upper.pack()
check_lower = tk.Checkbutton(window, text="小写字母", variable=var_lower)
check_lower.pack()
check_digit = tk.Checkbutton(window, text="数字", variable=var_digit)
check_digit.pack()
check_punct = tk.Checkbutton(window, text="特殊字符", variable=var_punct)
check_punct.pack()
 
button_generate = tk.Button(window, text="一键生成并复制",
                            command=show_and_copy_random_string)
button_generate.pack()
 
label_result = tk.Label(window, text="")
label_result.pack()
 
window.mainloop()


相关推荐
  • Python脚本
  • 随机密码
  • 监测腾讯云轻量服务器流量超标关机python脚本

    脚本介绍一款监测腾讯云轻量应用服务器流量包使用情况,并根据配置进行警告和关机的Python脚本。GitHub:https://github.com/XiaoXinYo/Tencent_Cloud_LightHouse_Server_Guardian脚本功能仅用于轻量级服务器1.自动检测流量包剩余,可设置使用比2.自动关...

    python教程 96 2年前
  • Python无需认证QQ扫码登录脚本

    无需认证QQ扫码登录脚本python脚本,盗用JD的QQ登录,也可以改成其他网址。无需自己注册腾讯开发者,无需自己有一套网址去申请应用Get_QQ返回QQ号,也可以获取到QQ头像、好友等其他信息,请勿用于非法行为import requestsimport timefrom PIL import Imagedef...

    python教程 351 3年前
  • 最新python织梦dedecms远程执行脚本

    织梦CMS是使用最多的CMS之 一,但是漏洞也非常多。分享一款python写的织梦远程文件包含漏洞。修复此漏洞方法,请见文章底部。织梦CMS漏洞代码#! /usr/bin/env python#coding=utf-8#Joseph(小续)import requestsimport sysimport redef main():try:url="...

    服务器配置 295 4年前
  • js随机生成指定位数+数字+字母混合字符串

    之前我的站长站分享过js随机生成的教程,但是那篇教程只能指定随机数的位数,但是不能自定义随机内容。[xxid]71,2770[/xxid]这篇教程可以指定随机的位数,还可以自定义随机的内容,比如:数字、字母、符号,或其他任何混合字符串,代码如下:function generateMixed...

    js教程 53 1年前
  • javascript生成10位以上随机密码

    JS代码功能随机密码长度10位以上;随机密码包含特殊字符;随机密码包含英文大小写;javascript语法代码复制到本地保存XXX.html,使用浏览器打开即可运行。<html> <head> <title>随机生成密码</title> <meta charset="utf8"> <scrip...

    js教程 53 1年前
  • Python随机密码生成脚本

    Python随机密码生成脚本,去重复字符,可自定义长度和字符集,AI代写的。import randomimport stringimport tkinter as tk def generate_random_string(): try: length = int(entry_length.get()) if length <= 0: label_re...

    python教程 56 1年前
最新更新