記錄#
- 今天學習的是密碼安全,對密碼進行 salt 和 hash。
- salt 應該保證是唯一不重複的,每個用戶的 salt 值都是單獨的。
- salt 的目的是保證密碼無法被逆向對撞,也就是黑客用彩虹表進行對撞。
- hash 是一種算法,還有 md5 也是。
- 今天的練習是寫一個登錄程序,包括創建用戶和用戶登錄兩個功能。
CODE#
from replit import db
import random
print("🌟Login System🌟")
def AddUser():
username = input("Username > ")
password = input("Password > ")
salt = random.randint(1000, 9999)
newpass = hash(f"{password}{salt}")
db[username] = {"password": newpass, "salt": salt}
print("Success")
def Login():
username = input("Username > ")
password = input("Password > ")
salt = db[username]["salt"]
newpass = hash(f"{password}{salt}")
if db[username]:
if newpass == db[username]["password"]:
print(f"{db[username]}, Welcome!")
else:
print("Sorry1")
else:
print("Sorry2")
while True:
menu = input("1: Add User\n2: Login\n")
if menu == "1":
AddUser()
elif menu == "2":
Login()