二手产品经理

二手产品经理

THIS IS RENO

Hash - 71天 - 在线学python100天

记录#

  1. 今天学习的是密码安全,对密码进行 salt 和 hash。
  2. salt 应该保证是唯一不重复的,每个用户的 salt 值都是单独的。
  3. salt 的目的是保证密码无法被逆向对撞,也就是黑客用彩虹表进行对撞。
  4. hash 是一种算法,还有 md5 也是。
  5. 今天的练习是写一个登录程序,包括创建用户和用户登录两个功能。

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()


加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。