用面向对象的方法实现,对用户密码进行加密
import hashlib
import json
class UserManager:
def __init__(self):
self.users = {}
def register(self, username, password):
if username in self.users:
print("用户名已存在。")
return False
# 对密码进行加密
encrypted_password = self.encrypt_password(password)
self.users[username] = encrypted_password
print("注册成功。")
return True
def login(self, username, password):
if username not in self.users:
print("用户名不存在。")
return False
encrypted_password = self.encrypt_password(password)
if self.users[username] == encrypted_password:
print("登录成功。")
return True
else:
print("密码错误。")
return False
def list_users(self):
print("所有注册用户:")
for username in self.users:
print(username)
@staticmethod
def encrypt_password(password):
# 使用SHA-256算法进行加密
sha256 = hashlib.sha256()
sha256.update(password.encode('utf-8'))
return sha256.hexdigest()
# 管理员操作
def admin_menu(user_manager):
while True:
print("\n管理员菜单:")
print("1. 查看所有用户")
print("2. 返回")
choice = input("请选择操作:")
if choice == '1':
user_manager.list_users()
elif choice == '2':
break
else:
print("无效的选择,请重新输入。")
# 用户操作
def user_menu(user_manager):
while True:
print("\n用户菜单:")
print("1. 注册")
print("2. 登录")
print("3. 返回")
choice = input("请选择操作:")
if choice == '1':
username = input("请输入用户名:")
password = input("请输入密码:")
user_manager.register(username, password)
elif choice == '2':
username = input("请输入用户名:")
password = input("请输入密码:")
user_manager.login(username, password)
elif choice == '3':
break
else:
print("无效的选择,请重新输入。")
# 主程序
def main():
user_manager = UserManager()
while True:
print("\n欢迎使用用户管理系统:")
print("1. 用户操作")
print("2. 管理员操作")
print("3. 退出")
choice = input("请选择操作:")
if choice == '1':
user_menu(user_manager)
elif choice == '2':
admin_menu(user_manager)
elif choice == '3':
break
else:
print("无效的选择,请重新输入。")
if __name__ == "__main__":
main()