ForHosting KIT · أدوات المطورين

حساب ثواني نافذة TOTP المتبقية وفهرسها

عند وقت Unix قدره 1700000000 ومدة 30 ثانية، تكونون في النافذة 56666666 ويتبقى 10 ثوانٍ قبل أن يتقدم العداد. أدخلوا المدة والطابع الزمني لفحص رموز تبدو منتهية قبل أوانها، دون أي سر. مجانًا في متصفحكم.

  • مجاني
  • يعمل في متصفحك
  • دون تسجيل
  • بياناتك لا تغادر جهازك
استخدمها من الويبAPIالبريدTelegramالتطبيق قريبًا
إذا أدخلت
الدورة
30
الوقت الحالي
1,700,000,000
تحصل على
الثواني المتبقية
10
فهرس النافذة
56,666,666

تحوّل حاسبة النافذة الزمنية TOTP هذه طول المدة وطابعًا زمنيًا بنظام Unix إلى قيمتين عمليتين: فهرس النافذة النشطة وعدد الثواني الكاملة المتبقية قبل بدء النافذة التالية. تفيدكم عند إنشاء أنظمة كلمات المرور الصالحة لمرة واحدة والمستندة إلى الوقت أو اختبارها أو تشخيصها، ولا سيما عندما يبدو أن الرمز ينتهي قبل المتوقع. الحساب حتمي، ولا يستخدم مفتاحًا سريًا، ولا ينشئ كلمة مرور، ولا يقرأ ساعة جهازكم، ولذلك تعطي المدخلات نفسها النتيجة نفسها دائمًا.

تعرّفوا إلى ما تمثله نافذة TOTP الزمنية

يقسّم نظام TOTP وقت Unix إلى نوافذ متتابعة متساوية الطول. تُعد ثلاثون ثانية مدة شائعة، لكن الحساب يعمل مع أي عدد صحيح موجب من الثواني. ينتج فهرس النافذة من قسمة الطابع الزمني بنظام Unix على المدة ثم التقريب إلى العدد الأدنى.

تنتمي كل الطوابع الزمنية التي تعطي ناتج القسمة نفسه إلى النافذة نفسها، وبذلك يستطيع تطبيق المصادقة والخادم اختيار العداد المتغير نفسه كلٌ على حدة. تعرض هذه الحاسبة ذلك العداد مباشرة من دون طلب سر مشترك أو إنشاء رمز مصادقة. كما توضّح عدد الثواني الكاملة المتبقية قبل انتقال العداد.

عند الثانية الأولى تمامًا من النافذة تبقى المدة كاملة، وعند الثانية الأخيرة تبقى ثانية واحدة. تجعل هذه القاعدة عند الحدود مؤشرات العد التنازلي مفيدة، وتمنع عرض الصفر بينما لا تزال النافذة الحالية نشطة.

اختاروا المدخلات وافهموا النتيجة

اضبطوا period على العمر المضبوط لخطوة TOTP واحدة، معبرًا عنه بعدد صحيح موجب من الثواني. يبدأ الفهرس من الصفر عند حقبة Unix، ويصبح عادة عددًا صحيحًا كبيرًا مع الطوابع الزمنية الحالية. الفهرس ليس رمزًا، فلا تقارنوه بالأرقام التي يعرضها تطبيق المصادقة.

قارنوا بدلًا من ذلك فهارس النوافذ عند التحقق من اتفاق مكوّنين على الوقت، أو استخدموا القيمة المتبقية لتحديد متى ينبغي للاختبار انتظار الحد التالي. لا تطبق الدالة سماحية انحراف الساعة، ولا قبول النوافذ المجاورة، ولا تصحيحات الثواني الكبيسة، ولا تأخير الشبكة. فهذه خيارات ضمن سياسة أداة التحقق.

تصف النتيجة النافذة النشطة رياضيًا فقط للطابع الزمني والمدة المقدمين، مما يحافظ على قابلية توقع الاختبارات الآلية ويسهّل عزل أوجه الاختلاف.

استخدموا الحاسبة بأمان في الاختبارات والتشغيل

استخدموا هذه الإمكانية عندما تحتاجون إلى معلومات زمنية من دون كشف بذرة TOTP. تتيح لكم الطوابع الزمنية الثابتة في اختبارات التكامل التحقق من السلوك قبل الحد مباشرة وعنده وبعده، من دون محاكاة ساعة نظام مخفية داخل هذه الحاسبة. تذكّروا أن تطابق النافذة لا يثبت صحة كلمة مرور صالحة لمرة واحدة جرى إرسالها.

ما زال التحقق يتطلب السر المشترك، وإعدادات التجزئة وعدد الأرقام المتفق عليها، والحماية من إعادة الاستخدام، وسياسة سماحية صريحة. تجنبوا تسجيل الأسرار إلى جانب بيانات التشخيص الزمنية؛ فالمدة والطابع الزمني والفهرس والعد التنازلي تكفي للتحقيق في معظم مشكلات المزامنة.

تشخيص محاذاة ساعة تطبيق المصادقة

قارنوا فهارس النوافذ المحسوبة للطوابع الزمنية المسجلة لدى العميل والخادم لتحديد اختلاف الساعة أو المدة من دون مشاركة بذرة TOTP.

إنشاء عد تنازلي حتى انتقال النافذة

اعرضوا عدد الثواني الكاملة المتبقية قبل تقدم عداد TOTP النشط وانتماء الرمز المنشأ حديثًا إلى النافذة التالية.

اختبار الحدود الدقيقة للنوافذ

استخدموا طوابع زمنية ثابتة بنظام Unix قبل الحد مباشرة وعنده لجعل اختبارات توقيت المصادقة حتمية وقابلة للتكرار.

ما كلفة هذه الإمكانية؟

يستطيع إصدار المتصفح تنفيذ الحساب الحتمي نفسه محليًا.

هل تنشئ رمز TOTP أو تتحقق منه؟

لا. فهي تحسب البيانات الوصفية الزمنية فقط، ولا تقبل سرًا مشتركًا أو كلمة مرور صالحة لمرة واحدة.

لماذا تُعاد المدة كاملة عند حد دقيق؟

لأن النافذة الجديدة بدأت للتو، فلم تنقضِ أي ثانية كاملة منها، وما زالت المدة كلها متبقية.

هل أُدخل الوقت بالثواني أم بالملي ثانية؟

بثوانٍ Unix صحيحة، وليس بالملي ثانية أبدًا. فالقيمة بالملي ثانية تشير إلى نافذة بعيدة جدًا في المستقبل. كما يتيح لكم الطابع الزمني الصريح تكرار النتيجة في الاختبارات والسجلات وتقارير الحوادث.

إذا تطابقت النافذة في نظامين، فهل الرمز صالح؟

ليس بالضرورة. فتطابق النافذة يبيّن فقط أن الطرفين متفقان على الوقت. أما التحقق من الرمز فيحتاج أيضًا إلى السر المشترك والإعدادات المتفق عليها والحماية من إعادة الاستخدام وتسامح واضح مع انحراف الساعة.

كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.

POSThttps://api.kit.forhosting.com/security/otp-time-window-calc

صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.

curl -X POST https://api.kit.forhosting.com/security/otp-time-window-calc \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"period":30,"current_time":1700000000}'
{
  "period": 30,
  "current_time": 1700000000
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "security.otp_time_window_calc",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.

لكل طلب$0.002

السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.

HTTPالرمزالمعنى
401unauthorizedمفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك.
402insufficient_balanceرصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة.
404unknown_typeنوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب.
429rate_limitedتجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة.

تعرّفوا إلى ما تمثله نافذة TOTP الزمنية

أدخلوا الطابع الزمني صراحة بوحدة ثواني Unix، لا بالمللي ثانية، كي تتمكنوا من إعادة إنتاج النتيجة في السجلات والاختبارات وملاحظات الحوادث من دون الاعتماد على ساعة المتصفح أو بيئة تشغيل API.

اختاروا المدخلات وافهموا النتيجة

ثم قدّموا current_time بوصفه طابعًا زمنيًا غير سالب بنظام Unix وفي ثوانٍ كاملة. تتضمن الاستجابة seconds_remaining وwindow_index. فمثلًا، إذا انقضت عشر ثوانٍ داخل النافذة الحالية وكانت مدتها ثلاثين ثانية، تكون قيمة seconds_remaining عشرين.

استخدموا الحاسبة بأمان في الاختبارات والتشغيل

تستطيع مهمة مراقبة حساب الفهرس الحالي من طابع زمني مسجل، كما تستطيع واجهة استخدام seconds_remaining للتنبيه إلى اقتراب انتقال الرمز. تبلغ كلفة كل استدعاء API مقدار $0.002، بينما يمكن تشغيل إصدار المتصفح محليًا. ولأن الخوارزمية تنفذ حسابًا بعمل ثابت ولا تصل إلى شبكة أو مصدر عشوائي أو ساعة، فإن الاستدعاءات المتكررة بالمدخلات نفسها تعيد JSON نفسه، وتلائم الاختبارات المرجعية وسجلات التدقيق.

هل ينبغي تقديم current_time بالثواني أم بالمللي ثانية؟

استخدموا ثواني Unix الكاملة. حوّلوا الطابع الزمني من المللي ثانية إلى الثواني قبل إرساله.

ماذا يحدث إذا كانت المدة صفرًا أو سالبة؟

يفشل الطلب مع خطأ invalid_input لأن نافذة TOTP الزمنية يجب أن تكون ذات طول موجب.

اطّلع على توثيق KIT الكامل ←