密码生成器如何包含字符串的每一部分[重复]?

问题描述 投票:0回答:1

我想做密码生成器,但我有一个小问题。我想要一个包括大写+小写+数字+特殊字符的密码。有时它可以工作,它包括所有的东西,但有时它不工作。

下面是我的代码

import random

alphabet = "abcdefghijklmnopqrstuvwxyz"

lchar4pass = alphabet
uchar4pass = alphabet.upper()
numb4pass = "0123456789"
schar4pass = "()_-+[]{;}/.,!@$%#&*"


passlen = 0

while True:
    try:
        passlen = int(input("Enter the lenght of passw0rd: "))
    except:
        print("\nYou can't use a letter or a word for length.")
    if passlen > 11 and passlen < 83:
        break
    else:
        print("\nEnter a number between 11 and 83.\n")


passw0rd = lchar4pass + uchar4pass + numb4pass + schar4pass


passw0rd = "".join(random.sample(passw0rd,passlen))


print(passw0rd)

谢谢你

python random
1个回答
1
投票

在所提供的代码中,你从所有字符中生成字符串,然后随机选择字符,有可能生成的密码不包括所有类别的字符。

我的建议是将每个类别的字符串分开,并从中随机选择。

你可以自由选择每个类别的字符数。

© www.soinside.com 2019 - 2024. All rights reserved.