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('条数必须是整数!')
     



  • 相关阅读:
    HTML5你必须知道的28个新特性
    localStorage使用总结
    Oracle分页查询排序数据重复问题
    servlet,RMI,webservice之间的区别
    远程通信的几种选择(RPC,Webservice,RMI,JMS的区别)
    几种通讯协议的比较
    http、TCP/IP协议与socket之间的区别
    Oracle修改序列(Sequence)起始值问题
    mybatis开启二级缓存小记
    使用canvas绘制渐变色矩形和使用按键控制人物移动
  • 原文地址:https://www.cnblogs.com/jiadan/p/8909146.html
Copyright © 2011-2022 走看看