zoukankan      html  css  js  c++  java
  • 随机生成密码作业

    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()
    

      



  • 相关阅读:
    HTML5 教程 4 添加点东西
    2.12.ECMAScript运算符
    2.13.JavaScript条件语句
    HTML5 教程 1 介绍
    HTML5 教程 3 设置body
    2.14.JavaScript循环语句
    HTML5 教程 5 选择器属性
    linux 系统中shell实现将fasta文件的碱基转换为一行及还原
    python中pip命令的使用
    R语言中which函数的简单用法,主要用于返回指定条件项的索引
  • 原文地址:https://www.cnblogs.com/MLing/p/12901732.html
Copyright © 2011-2022 走看看