生成一个n位的随机密码字符韦要求: 1.必须至少8位 2. 必须包含数字 3.必须包合大小写字母 必须包含特殊符号(可打印的特殊符合) 输入:密码位数n 输出in位的密码字符串 加果密码位数n小于8,就返回空字符串
时间: 2023-11-27 17:54:48 浏览: 91
以下是Python的实现代码:
```python
import random
import string
def generate_password(n):
if n < 8:
return ""
else:
digits = string.digits
lower_letters = string.ascii_lowercase
upper_letters = string.ascii_uppercase
special_chars = string.punctuation
password = []
password.append(random.choice(digits))
password.append(random.choice(lower_letters))
password.append(random.choice(upper_letters))
password.append(random.choice(special_chars))
for i in range(n-4):
password.append(random.choice(digits + lower_letters + upper_letters + special_chars))
random.shuffle(password)
return "".join(password)
# 测试代码
print(generate_password(10))
```
代码中,我们首先判断输入的密码位数n是否小于8,如果是,则返回空字符串。否则,我们分别定义了数字、大小写字母和特殊符号的字符集,并且从每一个字符集中随机选择一个字符,用于保证生成的密码中至少包含一个数字、一个小写字母、一个大写字母和一个特殊符号。
接着,我们使用循环随机生成剩余的n-4个字符,并将所有字符打乱顺序,最终返回一个字符串类型的随机密码。
阅读全文