使用hashlib模块将register功能用户的密码进行md5“加盐”加密
注册功能普通版,请点击这里
使用hashlib模块将register功能用户的密码进行md5“加盐”加密并保存到本地
import hashlib # 定义获取md5密文密码的函数 def get_md5(mm): md5_obj = hashlib.md5() # 获得一个md5 hash对象 # update中一定要传入bytes类型数据 md5_obj.update(mm.encode("utf-8")) # 创造“盐”,这个“盐”一定要与创建md5密文密码时候的“盐”一致 sal = "so cool" # “加盐” md5_obj.update(sal.encode("utf-8")) # 返回一个加密后的md5密文字符串 res = md5_obj.hexdigest() return res # 1.先让用户输入用户名和密码,校验合法性 def get_user_pwd(): while True: # 让用户输入用户名 username = input("请输入用户名:").strip() # 校验用户名是否为纯英文,.isalpha() 检验英文字母、中文 if username.isalpha(): break else: print("用户名不合法,请重新输入...") while True: # 让用户输入密码 password = input("请输入密码:").strip() re_password = input("请再次输入密码:").strip() # 检验两次面是否一致 if password == re_password: # 将用户输入的密码"加盐"转为md5密文密码 md5_password = get_md5(re_password) break else: print("两次密码不一致,请重新输入...") # 先定义一个所有角色的列表 role_list = ["普通用户", "管理员用户", "超级用户"] while True: # 让用户输入用户角色 user_role = input("请输入你的用户角色(普通用户、管理员、超级用户):").strip() if user_role in role_list: break else: print("输入错误,请重新输入...") return username, md5_password, user_role # 2.拼接字符串 def cut_user_pwd(user, pwd, role): user_info = f"{user}:{pwd}:{role}\n" return user_info # 3.保存用户数据,写入文件中,每个用户用一个文件保存 def save_data(user_pwd_str, user): with open(f"user_data/{user}.txt", "w", encoding="utf-8") as f: f.write(user_pwd_str) # 注册功能demo def register(): # 1.先让用户输入用户名和密码,校验合法性,得到合法的用户名和密码 user, pwd, role = get_user_pwd() # 2.设计字符串的拼接 user_pwd_str = cut_user_pwd(user, pwd, role) # 3.保存用户数据,写入文件中,每个用户用一个文件保存,以用户名为文件命名 save_data(user_pwd_str, user) print("注册成功!") # 执行注册功能demo register()