用Python写一个能创建账户密码以及登陆系统
时间: 2023-12-27 21:02:00 浏览: 28
好的,这个任务可以分成几个步骤来完成。
首先,我们需要一个能够创建新用户的函数。我们可以使用`input`函数获取用户输入,并将用户名和密码保存在以用户名命名的文件中。
```python
def create_user():
username = input('请输入用户名:')
password = input('请输入密码:')
with open(f'{username}.txt', 'w') as f:
f.write(f'{username},{password}\n')
print('用户已创建!')
```
上述代码中,我们使用`input`函数获取用户输入的用户名和密码,并将其保存在以用户名命名的文件中。
接下来,我们需要一个用户登录的函数。我们可以使用`getpass`模块获取用户输入的密码,并使用`hashlib`模块对密码进行加密存储。这样即使数据被盗,也无法轻易地获取到用户的密码。
```python
import getpass
import hashlib
def login():
# 获取用户名和密码
username = input('请输入用户名:')
password = getpass.getpass('请输入密码:')
# 验证用户信息
with open(f'{username}.txt', 'r') as f:
user_info = f.readline().strip().split(',')
if hashlib.sha256(password.encode()).hexdigest() == user_info[1]:
print('登录成功!')
return username
else:
print('密码错误!')
return None
```
上述代码中,我们从以用户名命名的文件中读取用户信息,然后获取用户输入的用户名和密码。接着,我们使用`hashlib`模块对密码进行加密,并与文件中存储的密码进行比较,来验证用户信息。如果用户名和密码都正确,则返回用户名,否则返回`None`。
最后,我们可以编写一个主函数来调用上述函数。
```python
def main():
# 显示菜单
menu = '''
用户管理菜单:
1. 创建新用户
2. 登录系统
3. 退出
'''
while True:
print(menu)
choice = input('请输入要执行的操作:')
if choice == '1':
create_user()
elif choice == '2':
username = login()
if username is not None:
print(f'欢迎您,{username}!')
# TODO: 在这里添加登录后的操作
elif choice == '3':
break
else:
print('无效操作!')
print('程序已退出!')
if __name__ == '__main__':
main()
```
上述代码中,我们首先显示菜单,根据用户的选择调用相应的函数。在用户登录成功后,可以在`TODO`处添加登录后的操作,比如跳转到另一个菜单、显示用户信息等等。
这样,我们就完成了一个能够创建账户密码以及登陆系统的程序。