01. البنية الرياضية لمعيار RFC 6238
تعتمد خوارزمية TOTP (كلمة المرور لمرة واحدة المعتمدة على الوقت) على حساب عدد الفواصل الزمنية المكونة من 30 ثانية المنقضية منذ Epoch (1 يناير 1970 UTC). يتم تمرير هذا العداد الزمني مع المفتاح السري المشترك إلى دالة HMAC-SHA1 لإنتاج تجزئة 20 بايت، ثم يُطبق عليها الاقتطاع الديناميكي لاستخراج رمز مكون من 6 خانات.
02. تطبيق خوارزمية TOTP بلغة Python
import hmac import hashlib import time import struct import base64def get_totp(secret_base32: str, interval: int = 30) -> str:
1. Decode base32 secret
key = base64.b32decode(secret_base32.replace(” ”, "").upper())
2. Calculate time step
time_step = int(time.time()) // interval msg = struct.pack(“>Q”, time_step)
3. HMAC-SHA1 hash
digest = hmac.new(key, msg, hashlib.sha1).digest()
4. Dynamic Truncation
offset = digest[-1] & 0x0F code_int = struct.unpack(“>I”, digest[offset:offset+4])[0] & 0x7FFFFFFF
5. Extract 6 digits
return str(code_int % 1000000).zfill(6)
if name == “main”: print(“رمز TOTP الحالي:”, get_totp(“JBSWY3DPEHPK3PXP”))
03. تطبيق آمن في المتصفح باستخدام JavaScript Web Crypto API
يستخدم موقعنا 2FA-Tool واجهة Web Crypto API التابعة للمتصفح دون استدعاء أي خوادم خارجية، مما يضمن بقاء المفاتيح السرية في ذاكرة الوصول العشوائي للعميل فقط.