编写一个根据用户输入的字符串自动生成8位数的Python程序,不要太复杂,别使用哈希算法,并且输入的字符串相同时,生成的密码也应一样
时间: 2024-02-15 09:03:09 浏览: 133
好的,以下是一个简单的实现:
```python
import random
import string
# 定义一个字典,用于存储字符串和生成的密码的对应关系
password_dict = {}
def generate_password(string):
# 判断字典中是否已经存储了该字符串的密码
if string in password_dict:
return password_dict[string]
else:
# 生成包含大小写字母和数字的可选字符集
characters = string.ascii_letters + string.digits
# 从可选字符集中随机选择8个字符组成密码
password = ''.join(random.choices(characters, k=8))
# 将字符串和对应的密码存储到字典中
password_dict[string] = password
return password
string = input("请输入要生成密码的字符串:")
password = generate_password(string)
print("生成的密码是:", password)
```
使用示例:
```
请输入要生成密码的字符串:hello world
生成的密码是: nF3tV8XK
```
再次输入相同的字符串,生成的密码应该是相同的:
```
请输入要生成密码的字符串:hello world
生成的密码是: nF3tV8XK
```
注意,这个实现中使用了一个字典来存储字符串和生成的密码的对应关系,这样可以保证相同的字符串生成的密码也是相同的。但是需要注意的是,这个实现并不是非常安全,因为所有的密码都是事先生成好的,只要知道字符串,就可以轻松得到相应的密码,建议使用更复杂的密码生成方法或者加盐等技术来提高密码的安全性。
阅读全文