01. Công thức toán học cốt lõi của TOTP
02. Mã nguồn triển khai bằng Python thuần (Không cần thư viện ngoài)
import hmac import hashlib import time import struct import base64def generate_totp(secret_base32: str, interval: int = 30, digits: int = 6) -> str: cleaned = secret_base32.replace(” ”, "").upper() padding = len(cleaned) % 8 if padding: cleaned += ’=’ * (8 - padding) key = base64.b32decode(cleaned)
time_step = int(time.time()) // interval time_bytes = struct.pack(“>Q”, time_step)
hmac_digest = hmac.new(key, time_bytes, hashlib.sha1).digest() offset = hmac_digest[-1] & 0x0F code_int = struct.unpack(“>I”, hmac_digest[offset:offset+4])[0] & 0x7FFFFFFF
code = code_int % (10 ** digits) return str(code).zfill(digits)
if name == “main”: print(“Mã 2FA hiện tại:”, generate_totp(“JBSWY3DPEHPK3PXP”))
03. Triển khai bằng JavaScript Web Crypto API
API Web Crypto của trình duyệt cho phép tính toán khóa trong vùng bộ nhớ bảo vệ, đảm bảo bí mật không bị lộ ra ngoài giao diện mạng.