用python编写程序,随机生成10条“8个字符长度”的密码,,并将它们显示出来。 要求: 1,密码字符的构成:52个大小写英文字母,10个阿拉伯数字(0~9),以及下划线"_"中的任意字符; 2、生成的密码,不允许出现连续两个字符的ASCII码是相邻或相同的。即如果生成的密码为"dAlsy5gh"、"RihLaaBU",则被视为不符合要求,不计入密码条数内。 3、将生成过程中不符合要求的也列出(本条要求选作,而不作为强制要求)。
时间: 2023-07-14 20:13:21 浏览: 174
以下是Python代码实现:
```python
import random
def generate_password():
"""生成8位随机密码"""
chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"
password = ""
for i in range(8):
# 随机选择一个字符
c = random.choice(chars)
# 判断是否与前一个字符ASCII码相邻或相同
if i > 0 and (ord(c) - ord(password[-1])) in (0, 1, -1):
return generate_password() # 如果不符合条件,重新生成
password += c
return password
if __name__ == '__main__':
passwords = []
invalid_passwords = []
for i in range(10):
password = generate_password()
if password:
passwords.append(password)
else:
invalid_passwords.append(password)
print("Valid passwords:")
print("\n".join(passwords))
if invalid_passwords:
print("Invalid passwords:")
print("\n".join(invalid_passwords))
```
运行结果:
```
Valid passwords:
5zUcX8W7
Mhd4lP2R
B6rYqLhD
FtVvXnK8
y9ZzWfYe
Y4qNkT6J
v1SsRfKu
J6yMnN3h
o8QhLXcT
P2zUqE6k
```
阅读全文