Python是一門高級編程語言,其作為腳本語言廣泛應用在Web開發、網絡爬蟲、數據分析和人工智能等領域。在Web開發中,身份驗證是非常重要的一個環節。Python提供了多種身份驗證方式,下面我們來介紹一下常用的幾種。
# 基本的用戶名密碼驗證 import getpass username = input("請輸入用戶名:") password = getpass.getpass("請輸入密碼:") if username == "admin" and password == "123456": print("登錄成功!") else: print("用戶名或密碼錯誤!")
上面的代碼通過Python內置的getpass庫可以安全地獲取用戶輸入的密碼。這種方式適用于基本的Web應用,但不夠安全。更好的方式是使用加密算法對密碼進行保護。
# 使用Hash算法加密密碼 import hashlib def encrypt_password(password): md5 = hashlib.md5() md5.update(password.encode("utf-8")) return md5.hexdigest() input_password = input("請輸入密碼:") encrypted_password = encrypt_password(input_password) # 存儲encrypted_password到數據庫中
上面的代碼使用Python內置的hashlib庫進行MD5加密。將加密后的密碼存儲到數據庫中,當用戶登錄時再進行密碼驗證。
# Token身份驗證 import time import hashlib def generate_token(username): timestamp = str(int(time.time())) token = hashlib.md5((username + timestamp).encode("utf-8")).hexdigest() return token def check_token(username, token): timestamp = str(int(time.time())) correct_token = hashlib.md5((username + timestamp).encode("utf-8")).hexdigest() return token == correct_token username = input("請輸入用戶名:") token = generate_token(username) # 把token返回給客戶端 # 客戶端發送請求時帶上token request_token = input("請輸入token:") if check_token(username, request_token): print("身份驗證通過!") else: print("身份驗證失敗!")
上面的代碼使用時間戳和哈希算法生成Token,將Token返回給客戶端。客戶端發送請求時帶上Token,服務器通過驗證Token來判斷用戶身份。
上一篇python 轉為數字型
下一篇mysql副鍵英文怎么說