• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

python 几种方法实现随机生成8位同时包含数字、大写字符、小写字符密码的小程序 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
python 实现随机生成包8位包含大写字母、小写字母和数字的密码的程序。
要求:
1用户输入多少次就生成多少条密码,
2要求密码必须同时包含大写字母、小写字母和数字,长度8位,不能重复
代码如下:

import string, random
src_upp = string.ascii_uppercase
src_let = string.ascii_lowercase
src_num = string.digits
lis = []
count = input('请输入次数:').strip()


# for 循环实现(产生密码数可能不足)
for i in range(int(count)):
    print(i)
    # 先随机定义3种类型各自的个数(总数为8)
    upp_c = random.randint(1, 6)
    low_c = random.randint(1, 8-upp_c - 1)
    num_c = 8 - (upp_c + low_c)
    # 随机生成密码
    password = random.sample(src_upp, upp_c)+random.sample(src_let, low_c)+random.sample(src_num, num_c)
    # 打乱列表元素
    random.shuffle(password)
    # 列表转换为字符串
    new_password = ''.join(password)+'\n'
    if new_password not in lis:
        lis.append(new_password)
with open('password.txt', 'w') as fw:
    fw.seek(0)
    fw.writelines(lis)
fw.close()


# while 循环实现(只有密码不重复才+1)
j=0
while j< int(count):
    print(j)
    upp_c = random.randint(1, 6)
    low_c = random.randint(1, 8 - upp_c - 1)
    num_c = 8 - (upp_c + low_c)
    # 随机生成密码
    password = random.sample(src_upp, upp_c) + random.sample(src_let, low_c) + random.sample(src_num, num_c)
    # 打乱列表元素
    random.shuffle(password)
    # 列表转换为字符串
    new_password = ''.join(password) + '\n'
    if new_password not in lis:
        lis.append(new_password)
        j += 1
with open('password.txt', 'w') as fw:
    fw.seek(0)
    fw.writelines(lis)
fw.close()

 

# 用集合交集的方法生成密码:

import random,string
num = input('请输入一个数字:').strip()
pwds = set()
if num.isdigit():
    while len(pwds)<int(num): # 保证生成条数足够
        passwd = set(random.sample(string.ascii_letters+string.digits,8))
        set1 = set(string.ascii_uppercase).intersection(passwd)
        set2 = set(string.ascii_lowercase).intersection(passwd)
        set3 = set(string.digits).intersection(passwd)
        if set1 and set2 and set3:
            str_passwd=''.join(passwd)+'\n'#要把产生的密码变成字符串,因为前面已经给变成集合了
            pwds.add(str_passwd)
    fw =open('pwds.txt','w')
    fw.writelines(pwds)
else:
    print('你输入的不是数字')

 


运行结果如下:

生成密码txt文件内容:

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
小程序-swiper除了左右切换还有上下滚动超出屏幕的内容发布时间:2022-07-18
下一篇:
小程序发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap