模仿網站登陸註冊

要求:用戶第一次登錄須要註冊,若是註冊的用戶名在文件裏已經存在則提示輸入新的用戶名,將註冊的信息更新到文件中,密碼使用摘要算法計算得的值進行保存算法

註冊成功便可登陸,登陸要輸入用戶名和密碼,顯示驗證碼,輸入驗證碼成功後就登錄成功,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()
View Code
相關文章
相關標籤/搜索