11
This commit is contained in:
20
app/core/heartbeat_verify.py
Normal file
20
app/core/heartbeat_verify.py
Normal file
@@ -0,0 +1,20 @@
|
||||
"""心跳响应防伪:MD5(时间桶 + verify_code)。"""
|
||||
|
||||
import hashlib
|
||||
from datetime import datetime, timezone
|
||||
|
||||
|
||||
def heartbeat_time_bucket(dt: datetime | None = None) -> str:
|
||||
"""UTC 时间桶,格式如 ``2026-05-20 15``(精确到小时)。"""
|
||||
if dt is None:
|
||||
dt = datetime.now(timezone.utc)
|
||||
elif dt.tzinfo is None:
|
||||
dt = dt.replace(tzinfo=timezone.utc)
|
||||
else:
|
||||
dt = dt.astimezone(timezone.utc)
|
||||
return dt.strftime("%Y-%m-%d %H")
|
||||
|
||||
|
||||
def compute_server_verify_code(verify_code: str, dt: datetime | None = None) -> str:
|
||||
raw = f"{heartbeat_time_bucket(dt)}{verify_code}"
|
||||
return hashlib.md5(raw.encode("utf-8")).hexdigest()
|
||||
Reference in New Issue
Block a user