• 随机生成密码作业


    1、写一个生产密码的程序,输入几,就产生几条密码,密码产生的不重复。
    要求密码:长度6 - 12,密码必须包含
    大写字母、小写字母、数字
    产生完密码后存到一个文件里面

    1.首先输入生成密码的条数 需要校验输入的要是数字
    2.根据输入,生成几条密码
    3.生成的密码长度要是随机的,且再6-12之间
    4.内容要包含大写字母、小写字母、数字
    5.生产后的密码,写在文件中,每次生成密码要不重复

    string中的常用的方法:
    Some strings for ctype-style character classification
    whitespace = ' vf'
    ascii_lowercase = 'abcdefghijklmnopqrstuvwxyz'
    ascii_uppercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    ascii_letters = ascii_lowercase + ascii_uppercase
    digits = '0123456789'
    hexdigits = digits + 'abcdef' + 'ABCDEF'
    octdigits = '01234567'
    punctuation = """!"#$%&'()*+,-./:;<=>?@[]^_`{|}~"""
    printable = digits + ascii_letters + punctuation + whitespace

    方法一
    import string
    import random
    def create_pa():
        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) #洗牌
        passwerd=''.join(end)
        print(passwerd)
        return passwerd
    create_pa()
    def run():
        number=input('输入条数:').strip()
        password_set=set()
        if number.isdigit():
            while len(password_set) != int(number):
                result=create_pa()
                password_set.add(result+'
    ')
        with open('pasw.txt','w',encoding='utf-8') as Wfile:
            Wfile.writelines(password_set)
    
    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
    

      

    # 方法二
    
    import string
    import random
    def create_password2():
        number_set = set(string.digits)
        upper_set = set(string.ascii_uppercase)
        lower_set = set(string.ascii_lowercase)
        while True:
            before_password = random.sample(string.digits+string.ascii_uppercase+string.ascii_lowercase,random.randint(6,12)) #生成一个6-12位的字符,再大写、小写、数字的组合之间
            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)
    run()
    

      



  • 相关阅读:
    代码的未来
    shell脚本中的[]/[[]]区别
    shell脚本判断文件类型
    muduo库安装
    protobuf安装
    讲给普通人听的分布式数据存储(转载)
    Oracle OCCI学习之开篇
    浅谈MySQL索引背后的数据结构及算法(转载)
    5.7版本mysql查询报错:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:...this is incompatible with sql_mode=only_full_group_by
    IDEA启动tomcat报错:java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext、ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component
  • 原文地址:https://www.cnblogs.com/MLing/p/12901732.html
Copyright © 2020-2023  润新知