请编写程序生成随机密码,具体要求如下: (1)使用random库,采用0X1010作为随机数种子。 (2)密码由26个字母大小写、10个数字字符以及“!、@、#、$、%、^、&、*” (3)每个密码长度固定为10个字符。 (4)程序运行每次产生10个密码,每个密码一行。 (5)每次产生的10个密码首字符不能一样。 (6)程序运行后产生的密码保存在“随机密码.txt"文件中
时间: 2023-12-22 15:06:41 浏览: 63
好的,以下是Python代码实现:
```python
import random
import string
# 设置随机数种子
random.seed(0x1010)
# 生成一个包含所有可能字符的字符串
all_chars = string.ascii_letters + string.digits + '!@#$%^&*'
# 定义一个函数用于生成单个密码
def generate_password():
password = ''.join(random.sample(all_chars, 10))
return password
# 定义一个函数用于生成10个不同首字符的密码
def generate_passwords():
# 用一个集合来存储已经生成的首字符
used_first_chars = set()
passwords = []
while len(passwords) < 10:
password = generate_password()
first_char = password[0]
if first_char not in used_first_chars:
used_first_chars.add(first_char)
passwords.append(password)
return passwords
# 生成10组密码并保存到文件中
with open('随机密码.txt', 'w') as f:
for i in range(10):
passwords = generate_passwords()
for password in passwords:
f.write(password+'\n')
```
这个程序使用`random.seed()`函数设置随机数种子,确保每次运行时生成的随机数序列都是一样的。
`all_chars`字符串包含了所有可能的字符,包括26个字母大小写、10个数字字符以及“!、@、#、$、%、^、&、*”。
`generate_password()`函数通过`random.sample()`函数从`all_chars`字符串中随机选择10个字符,并将它们拼接起来成为一个字符串。
`generate_passwords()`函数则用一个集合`used_first_chars`来存储已经生成的首字符,确保每个密码的首字符都不相同。
最后,程序循环10次,每次生成10个不同首字符的密码,并将它们保存到文件“随机密码.txt”中。
阅读全文