簡體   English   中英

Python登錄驗證系統

[英]Python login verification system

這是一個登錄系統,用戶輸入其詳細信息,然后此代碼驗證用戶是否存在

counter = 0
def validation():
    global counter
    print("Sorry, this username or password does not exist please try again")
    counter += 1
    if counter == 3:
        print("----------------------------------------------------")
        print("You have been locked out please restart to try again")
        sys.exit()

def verify_login(username, password, login_data):
    for line in login_data:
       if ("username: " + username + " password: " + password) == line.strip():
       return True

    return False


check_failed = True
while check_failed:
    with open("accountfile.txt","r") as username_finder:
        print("Could player 1 enter their username and password")
        username1=input("Please enter your username ")
        password1=input("Please enter your password ")
        if verify_login(username1, password1, username_finder):
            print("you are logged in")

現在,代碼在文本文件中查找以下格式:

username: (username) password: (password)

但是現在我想為每個用戶添加一個哈希碼,因此文件中的格式如下所示:

49ad2322f9a401e9e3c4ae7694b6b1f1 username: (username) password: (password)

如何更改verfiy_login,使其在每個用戶的開頭都隨機查找32個字符?

與其使用"username: " + username + " password: " + password重建行,然后將其與文本文件中的行進行比較,您可以通過首先split字符串然后解壓縮標記來對其進行解析。 通過拆分行,您可以分別訪問哈希,用戶名和密碼作為變量。

def verify_login(username, password, login_data):
    for line in login_data:

       hsh, _, username_from_file, _, password_from_file = line.strip().split()
       if len(hsh) == 32 and username == username_from_file and password == password_from_file:
            return True

    return False

按照慣例,將令牌解壓縮為_表示“我們將轉儲該值”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM