要求:用戶第一次登錄須要註冊,若是註冊的用戶名在文件裏已經存在則提示輸入新的用戶名,將註冊的信息更新到文件中,密碼使用摘要算法計算得的值進行保存算法
註冊成功便可登陸,登陸要輸入用戶名和密碼,顯示驗證碼,輸入驗證碼成功後就登錄成功,dom
下一次運行程序時,直接輸入用戶名密碼便可,無需再次註冊。ide
代碼以下學習
import hashlib import random import queryinfo dic={} path=r'E:\PYTHON學習\excises\day11\usrinformation.txt' def file_dic(file): with open(file,'r',encoding='utf-8') as f: content=f.read() dic.update(eval(content)) def get_md5(passwd): passwd=passwd.encode(encoding='utf-8') md5=hashlib.md5() md5.update(passwd) return md5.hexdigest() #================================= def dic_file(dictionary): with open(path,'w',encoding='utf-8') as f: f.write(str(dictionary)) #================================= def display(): print('input 1 登陸') print('input 2 註冊') print('input 3 退出') #================================== def createcode(): res='' for i in range(4): num=random.randint(0,9) word1=chr(random.randint(97,122)) word2=chr(random.randint(65,90)) res+=random.choice([str(num),word1,word2]) return res def main(): flag = True while flag: file_dic(path) #更新字典 display() num=input('>>') if num == '2': while True: name=input('請輸入用戶名: ') password=input('請輸入密碼: ') if name in dic: print('用戶名已經存在,請從新輸入') else: dic[name] = get_md5(password + name + '1234') dic_file(dic) print('註冊成功') break elif num == '1': while True: display_code=createcode() print(display_code) name = input('請輸入用戶名:') password = input('請輸入密碼: ') code= input('\033[45m 請輸入驗證碼,不區分大小寫:\033[0m') password = get_md5(password + name + '1234') if name in dic and password == dic[name]: if code.strip().lower() == display_code.strip().lower(): print('登錄成功') # cmd=input('please input command:') # queryinfo.second_main(cmd) break else: print('驗證碼輸入錯誤') else: print('用戶名或者密碼錯誤') elif num == '3': break main()