كلمات مرور عشوائية من الأحرف والأرقام والرموز عبر crypto.getRandomValues.
مولد رموز TOTP/HOTP
الأداة نفسها باللغة الإنجليزية؛ وهذه الصفحة تشرحها بلغتك.
استخدم مولد رموز TOTP/HOTP
ما الذي يفعله
احسب كلمات المرور التي تُستخدم لمرة واحدة القائمة على الوقت (TOTP) أو القائمة على العداد (HOTP) لسر «Base32»، بالطريقة نفسها التي تتبعها تطبيقات المصادقة، وتحقق مما إذا كان الرمز مطابقًا أم لا. مفيد لاختبار إعدادات المصادقة الثنائية (2FA) الخاصة بك.
يعمل التطبيق بالكامل داخل متصفحك: ولا يتم تحميل أي شيء تدخله.
كيفية استخدام مولد رموز TOTP/HOTP
- أدخل السر. الصق سر Base32 لحساب الاختبار الخاص بك في Secret key (Base32)، أو اضغط Random للحصول على سر جديد من 32 حرفًا.
- اضبط إعدادات تطبيقك. اختر نوع الرمز (TOTP القائم على الوقت أو HOTP القائم على العداد)، والخوارزمية، وعدد الأرقام. تستخدم معظم تطبيقات المصادقة TOTP وHMAC-SHA-1 و6 أرقام.
- اعرض الكود. بالنسبة لـ TOTP، اضغط على «بدء TOTP»: سيظهر الرمز مصحوبًا بعدّ تنازلي ويتم إعادة حسابه كل ثانية. بالنسبة لـ HOTP، اضبط العداد واضغط على «إظهار رمز HOTP»؛ ثم اضغط على «التالي» للانتقال إلى العداد التالي.
- التحقق من الرمز. أدخل رمزًا من تطبيقك أو من خادم في حقل «التحقق من الرمز» ثم اضغط على «التحقق». ستوضح النتيجة ما إذا كان الرمز مطابقًا أم لا، ولأي خطوة زمنية أو عداد.
- توقف وأخلِ المكان. اضغط على زر «إيقاف» عند الانتهاء؛ وسيظل الرمز الأخير معروضًا على الشاشة. قم بإفراغ الحقل السري بنفسك.
مثال
سر الاختبار في RFC 6238
GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ412568هذا هو مفتاح الاختبار 12345678901234567890 المنشور في RFC 6238 بتنسيق Base32. تعرض الصفحة الرمز الحالي المكون من ستة أرقام وعدد الثواني المتبقية حتى ظهور الرمز التالي، وهو نفس الرمز الذي يعرضه تطبيق المصادقة لهذا السر؛ وعند التبديل إلى HOTP مع العداد 0، يعرض الرمز 755224، وهي أول قيمة اختبارية وفقًا لمعيار RFC 4226.
ما الذي يتحقق منه
| إشارة | ماذا يعني ذلك |
|---|---|
| الرمز | HMAC الخاص بالخطوة الزمنية (TOTP) أو العداد (HOTP)، مقطوع إلى 6 أو 8 أرقام كما هو مذكور في RFC 4226 وRFC 6238. ولا يتطابق مع التطبيق إلا عندما يكون النوع والخوارزمية والأرقام متطابقة. |
| يتم التحديث بالنانو ثانية · الخطوة الزمنية N | الثواني المتبقية في النافذة الحالية التي مدتها 30 ثانية، ورقم الخطوة، المأخوذ من ساعة جهازك. وفي حالة عدم دقة الساعة، يُعرض الرمز السابق أو التالي. |
| العداد N · اضغط على «التالي» | في وضع HOTP، ينتمي الرمز إلى ذلك العداد. ويُستخدم كل رمز مرة واحدة؛ ثم تنتظر الخوادم العداد التالي. |
| ليس بتنسيق Base32: ... | يحتوي الرمز السري على أحرف خارج نطاق A–Z و2–7، مثل 0 أو 1 أو 8 أو 9. يتم تجاهل المسافات والواصلة وعلامة =، ويُسمح باستخدام الأحرف الصغيرة. |
| السر يتكون من N بت فقط | السر أقصر من 128 بت (26 حرفًا بنظام Base32) التي يطلبها RFC 4226. لا تزال الرموز تظهر، لكن مثل هذا السر أسهل في التخمين. |
| صالح: يطابق ... | تأكد من وجود الرمز الخاص بالخطوة الزمنية الحالية أو عداد HOTP في الحقل. |
| ينطبق على الخطوة السابقة أو التالية | ينتمي الرمز إلى خطوة واحدة مدتها 30 ثانية قبل أو بعد الوقت الحالي (موضحة باللون الكهرماني). وعادةً ما يكون هناك فارق بسيط في الوقت بين الجهازين. |
| لا توجد نتائج مطابقة | لا تتطابق الخطوات الزمنية التي تم التحقق منها ولا العدادات. تحقق من السر، والساعة، والخوارزمية، وعدد الأرقام. |
المزيد من الأمثلة
مفتاح الاختبار RFC 4226، HOTP
GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQعندما يكون نوع الرمز HOTP، وHMAC-SHA-1، و6 أرقام، والعداد 0، يكون الرمز هو 755224؛ أما عند اختيار «التالي»، فيظهر الرقم 287082 للعداد 1، وهي القيم الاختبارية المنشورة في RFC 4226.
التحقق من الرمز الذي يليه مباشرةً
GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQفي وضع HOTP مع العداد 0، عند كتابة الرقم 287082 في خانة «التحقق من الرمز»، تظهر الرسالة التالية: «صالح للعداد 1»، أي أن الرقم يسبق حقل العداد بمقدار 1.
ليس سرًا بتنسيق Base32
0189حدث خطأ مع الرسالة «ليس بتنسيق Base32: “0”، “1”، “8”، “9”»، لأن تنسيق Base32 يستخدم فقط الأحرف من A إلى Z والأرقام من 2 إلى 7.
الأسئلة الشائعة
ماذا يحسب بالضبط؟
رموز TOTP من الوقت الحالي بخطوات مدتها 30 ثانية (RFC 6238) أو رموز HOTP لعداد قمت بتعيينه (RFC 4226)، مع استخدام HMAC-SHA-1 أو SHA-256 أو SHA-512 و6 أو 8 أرقام؛ تستخدم معظم تطبيقات المصادقة خوارزمية SHA-1 و6 أرقام. تتحقق عملية التحقق من الرمز من الخطوة الزمنية الحالية وخطوة واحدة في كل اتجاه، أو عداد HOTP والـ9 خطوات التالية، ويتم رفض أي سر يحتوي على أحرف خارج نطاق A-Z و2-7 مع عرض رسالة إخطار.
هل يحميني رمز TOTP من التصيد؟
ليس تمامًا. فأدوات التصيد الجاهزة من نوع الوسيط (adversary-in-the-middle) تمرر الرمز إلى الموقع الحقيقي أثناء كتابتك له، فيُلتقط مع كلمة المرور؛ أما مفاتيح المرور (passkeys) ومفاتيح الأمان FIDO2 فتقاوم ذلك لأنها مرتبطة بالنطاق الحقيقي.
هل يُرسل السر أو يُخزَّن في أي مكان؟
لا. يتم حساب الرموز في متصفحك باستخدام واجهة برمجة تطبيقات Web Crypto، ولا يتم تحميل السر أو حفظه أبدًا. تعتمد تقنية TOTP على ساعة جهازك، لذا فإن الساعة التي لا تعمل بشكل صحيح ستعطي رموزًا مختلفة.
كيف يمكنني مطابقة الرموز مع وثائق RFC؟
استخدم مفتاح الاختبار 12345678901234567890، الذي يُعبَّر عنه في نظام Base32 بـ GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ. في وضع HOTP، يعطي العداد 0 القيمة 755224، ويعطي العداد 1 القيمة 287082 (RFC 4226). يذكر RFC 6238 الرقم 94287082 لـ 8 أرقام بعد 59 ثانية من 1 يناير 1970 بالتوقيت العالمي المنسق (UTC)؛ بينما يستخدم وضع TOTP دائمًا الوقت الحالي.
ما الفرق بين TOTP وHOTP؟
تقوم طريقة HOTP (RFC 4226) بحساب عدد مرات الاستخدام: فكل رمز ينتمي إلى عداد يزداد بمقدار واحد. أما طريقة TOTP (RFC 6238) فهي عبارة عن طريقة HOTP مع ضبط العداد على الفترة الزمنية الحالية البالغة 30 ثانية، وبالتالي يتغير الرمز مع مرور الوقت.
لماذا يعرض تطبيقي رمزًا مختلفًا؟
تحقق أولاً من الساعات، لأن فارق 30 ثانية يؤدي إلى تغيير الرمز. ثم تحقق من عدم وجود أخطاء إملائية في الرمز السري، ومن ما إذا كان الحساب يستخدم خوارزمية SHA-256 أو SHA-512 أو 8 أرقام أو عدادًا بدلاً من الوقت، وقم بتعيين الخيارات نفسها هنا.
هل يجب أن ألصق سر 2FA حقيقيًا هنا؟
تجنّب ذلك. يبقى السر في متصفحك، لكن أي شخص يراه أو ينسخه يستطيع إنتاج رموزك حتى تعيد تعيين 2FA على ذلك الحساب. ولنقل 2FA إلى هاتف جديد، استخدم خيار النقل أو إعادة التعيين الخاص بالحساب نفسه.