zoukankan      html  css  js  c++  java
  • Python-产生随机长度的密码

    #  【需求】
    #  1、写一个生产密码的程序,输入几,就产生几条密码,密码产生的不重复。
    # 2、要求密码:长度6 - 12,随机产生
    # 3、密码必须包含大写字母、小写字母、数字
    # 4、产生完密码后存到一个文件里面
    #不用集合的
        #1、随机取一位数字、一位大写字母、一位小写字母 #3个字符串
        #2、生成一个6-12之间的随机数,number
        #3、把随机数减去3,剩下的随机取
    #用集合的
        #1、生成3个集合,大写字母、小写、数字3个集合
        #2、随机取6-12位的密码,从所有的大写+小写+数字里面取
        #3、取出来密码分别和大写字母、小写、数字3个集合取交集
    import string,random
    def create_password():
        start = random.choice(string.digits) + random.choice(string.ascii_lowercase) 
        +random.choice(string.ascii_uppercase)
        end = random.sample(string.digits+string.ascii_letters,random.randint(6,12)-3)
        end.append(start)
        random.shuffle(end) #打乱顺序
        password = ''.join(end) #转换为字符串
        return password
    
    def create_password2():
        number_set = set(string.digits)# 0-9
        upper_set = set(string.ascii_uppercase)
        lower_set = set(string.ascii_lowercase)
    
        while True:
            length = random.randint(6, 12)#密码长度
            before_password = random.sample(string.digits+string.ascii_uppercase+string.ascii_lowercase,length)
            p = set(before_password)
            if number_set & p and upper_set & p and lower_set & p:
                return ''.join(p)
    
    def run():
        number = input("请输入产生的条数").strip() #1000
        password_set = set()
        if number.isdigit():
            while len(password_set)!=int(number):#0,1000
                # result = create_password()
                result = create_password2()
                password_set.add(result+'
    ')
    
        with open('passwords.txt','w') as fw:
            fw.writelines(password_set)
  • 相关阅读:
    代替elk的命令
    redis查找bigkeys--密码带特殊字符
    mysql5.7.1.log数据库改名
    kubesphere tomcat 日志 中文 乱码
    split切割大文件 批量查看日志
    文件内容正则批量替换
    font元素批量更换成font元素
    C#(99):资源与本地化 System.Resources
    ASP.NET Web网站本地化
    为WinForm项目添加帮助文档
  • 原文地址:https://www.cnblogs.com/brf-test/p/12951597.html
Copyright © 2011-2022 走看看