可以根据个人需求,输入密码的长度,需要包含的数字、字母、及特殊字符数量。
'''根据输入需求,生成随机密码'''
import random
import string
def generate_password(length, num_uppercase, num_lowercase, num_digits, num_special):
# 检查总长度是否满足要求
total_characters = num_uppercase + num_lowercase + num_digits + num_special
if total_characters > length:
raise ValueError("密码长度不足以包含所需数量的字符")
# 定义字符集
uppercase_letters = string.ascii_uppercase
lowercase_letters = string.ascii_lowercase
digits = string.digits
special_characters = string.punctuation
# 根据数量生成各种类型的字符
password = (
''.join(random.choice(uppercase_letters) for _ in range(num_uppercase)) +
''.join(random.choice(lowercase_letters) for _ in range(num_lowercase)) +
''.join(random.choice(digits) for _ in range(num_digits)) +
''.join(random.choice(special_characters) for _ in range(num_special))
)
# 补充剩余长度
remaining_length = length - len(password)
password += ''.join(random.choice(string.ascii_letters + string.digits + string.punctuation) for _ in range(remaining_length))
# 将密码打乱顺序
password_list = list(password)
random.shuffle(password_list)
password = ''.join(password_list)
return password
# 获取用户输入
length = int(input("请输入密码长度: "))
num_uppercase = int(input("包含大写字母的个数: "))
num_lowercase = int(input("包含小写字母的个数: "))
num_digits = int(input("包含数字的个数: "))
num_special = int(input("包含特殊字符的个数: "))
try:
# 生成密码
random_password = generate_password(length, num_uppercase, num_lowercase, num_digits, num_special)
print("随机密码:", random_password)
except ValueError as e:
print(f"错误: {e}")