密码生成器

import random
def Range_get(num,alist):
    listout = []
    while num > 0:
        listout.append(alist[random.randint(0,len(alist)-1)])
        num-=1
    return listout


def Pwd_Maker(length,digit=0,uper=0,lower=0,string=0):
    if length <= 3 or digit+uper+lower+string > length:
        print("input wrong")
    digitlist = [str(i) for i in list(range(2,10))] #数字
    uperlist = [chr(i) for i in list(range(65, 91))] #大写
    lowerlist = [chr(i) for i in list(range(97,123))] #小写
    stringlist = [chr(i) for i in [33,35,36,37,38,40,41,42]]  #特殊字符
    totallist = digitlist + digitlist + lowerlist + stringlist
    lefttime = length - digit - uper - lower - string
    resultlist = Range_get(digit,digitlist) + Range_get(uper,uperlist) \
    + Range_get(lower,lowerlist) + Range_get(string,stringlist) + Range_get(lefttime,totallist)
    random.shuffle(resultlist) #shuffle 打乱从新排序
    code = ''.join(resultlist)
    print(code)
    return code

if __name__ == "__main__":
    Pwd_Maker(12,1,1,1)  #(长度,至少有几个数字,至少有几个大写,至少有几个小写,至少有几个特殊字符)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值