生成随机密码自定义生成数量、密码位数、字符- python实现

#-*-coding:utf_8-*-
import random
import string
import time
#输入生成密码位数
password_digits = 16
#输入生成密码个数
password_num = int(input('输入生成密码个数(默认为1):') or "1")
#定义密码组成字符
digits = string.digits
uppercase = string.ascii_uppercase
lowercase = string.ascii_lowercase
non_alphanumeric='!@#&*$^'
#字符数量限制
digits_num = random.randint(1,6)
uppercase_num = random.randint(1,password_digits-digits_num-1)
lowercase_num =random.randint(1,password_digits-digits_num-uppercase_num)
non_alphanumeric_num=password_digits-digits_num-uppercase_num-lowercase_num
#生成字符串


for i in range(password_num):
    password = random.sample(digits,digits_num) + random.sample(uppercase,uppercase_num)+ random.sample(lowercase,lowercase_num)+random.sample(non_alphanumeric,non_alphanumeric_num)
    random.shuffle(password)
    #列表转字符串
    new_password = ''.join(password)
    print("密码为:",new_password)
    #写入到日志文件,防止历史密码丢失
    now_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
    filename = 'passwd.txt'
    with open(filename, 'a') as file_object:
        file_object.write(str(now_time)+"\t"+new_password+"\n")
input('Press Enter to exit...')

··········代码中已详细注释,有相关问题可以在评论区讨论

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值