zoukankan      html  css  js  c++  java
  • 一个自动生成密码文件的小程序

    1、写一个自动生成密码文件的程序
    1、你输入几,文件里面就给你产生多少条密码
    2、密码必须包括,大写字母、小写字母、数字、特殊字符
    3、密码不能重复
    4、密码都是随机产生的
    5、密码长度6-11

    方法一(自己写的)
    import  random,string
    f=open('pwd.txt','w') #w覆盖原来产生的文件
    num=input('请输入你要产生的密码个数:')
    s = set()

    while True:
    random_num=str(random.randint(1,999999))
    lower=random.sample(string.ascii_lowercase,2)#从小写字母序列中随机取2个元素
    upper=random.sample(string.ascii_uppercase,2)#从大写字母序列中随机取2个元素
    pun=random.choice(string.punctuation) #随机取一位特殊字符
    #''.join() # 1它把一个list变成了字符串 # 2通过某字字符串把list里面的每个元素连接起来
    pwd_list = [random_num,pun] +lower+upper# 产生密码之后的list
    random.shuffle(pwd_list) # 顺序打乱
    print(pwd_list)
    pwd_str = ''.join(pwd_list) # 最终的密码
    s.add(pwd_str)

    if len(s)==int(num):
    break

    for n in s:
    f.write(str(n)+' ')
    f.close()

    
    
    方法二(答案)
    import string,random
    pwd_len = input('请输入你要产生多少条密码:').strip()
    pwds = set() #存放所有的密码
    if pwd_len.isdigit():
    pwd_len = int(pwd_len)
    while len(pwds)!=pwd_len:
    num=random.choice(string.digits)#random.choice随机取一个元素
    letter = random.choice(string.ascii_lowercase)#随机取一个小写字母
    upper = random.choice(string.ascii_uppercase)#随机取一个大写字母
    pun = random.choice(string.punctuation)#随机取一个特殊字符
    pasd_len = random.randint(6,11) #代表生成密码的长度
    other_len = pasd_len - 4 #剩余的长度
    all_strs = string.digits+string.ascii_letters+string.punctuation
    # random.sample随机取N个元素,返回的是一个list
    other_passwd = random.sample(all_strs,other_len)#随机取到剩下的密码
    pwd_list = [num,letter,upper,pun]+other_passwd #产生密码之后的list
    random.shuffle(pwd_list)#顺序打乱
    pwd_str = ''.join(pwd_list) #最终的密码
    pwds.add(pwd_str+' ')
    else:
    open('passwds.txt','w').writelines(pwds)

    else:
    print('条数必须是整数!')
     



  • 相关阅读:
    在第一段ionic示例的基础上增加底部导航
    我的第一段ionic代码
    angularjs中ng-repeat的使用
    angular中$location读取url信息
    解决jenkins构建job报错“NoClassDefFoundError” in jenkins/scm/RunWithSCM问题
    完全卸载删除gitlab
    centos7端口永久开放方法
    eclipse解决maven编码UTF-8的不可映射字符
    Apache JMeter压力测试实例
    windows下安装setuptools与pip
  • 原文地址:https://www.cnblogs.com/jiadan/p/8909146.html
Copyright © 2011-2022 走看看