記錄#
- 修改第 62 天的程式碼,為它建立帳號密碼。
- 在程式碼首次執行時,如果沒有帳號密碼,則建立帳號和密碼。帳號密碼存儲在 replit db 中。
- 再次執行時必須帳號密碼正確才能訪問。
- 編寫的過程中對 db 的概念還是有些不清晰,在處理 key 和 value 時出現一些問題。
- 對於 for 循環的理解有些困難,不能很快速地理解循環過程和結果。
CODE#
from replit import db
import os, datetime, random, time
correctPassword = "1"
def add(t):
db[timestamp] = t
def view():
show = "n"
for key in dblist:
if show.lower() == "n" and key != "userinfo":
print(f"{key}: {db[key]}")
print("---")
elif show.lower() == "e":
break
show = input("Next or Exit? > ")
while True:
dblist = db.keys()
if "userinfo" not in dblist:
print("Set !")
username = input("Username > ")
password = input("password > ")
salt = random.randint(1000, 9999)
newpass = hash(f"{password}{salt}")
db["userinfo"] = {"username": username, "password": newpass, "salt": salt}
else:
print("Input !")
userinfo = db["userinfo"]
username = input("Username > ")
password = input("password > ")
salt = userinfo["salt"]
newpass = hash(f"{password}{salt}")
if username == userinfo["username"] and userinfo["password"] == newpass:
while True:
os.system("clear")
menu = input("Welcome\n1: Add\n2: View\n")
if menu == "1":
timestamp = datetime.datetime.now()
print(timestamp)
add(input("> "))
elif menu == "2":
view()
else:
print("username or password error!")
time.sleep(3)