记录#
- 今天学习的是密码安全,对密码进行 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()