我想做密码生成器,但我有一个小问题。我想要一个包括大写+小写+数字+特殊字符的密码。有时它可以工作,它包括所有的东西,但有时它不工作。
下面是我的代码
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)
谢谢你
在所提供的代码中,你从所有字符中生成字符串,然后随机选择字符,有可能生成的密码不包括所有类别的字符。
我的建议是将每个类别的字符串分开,并从中随机选择。
你可以自由选择每个类别的字符数。