DevToolPal
ع

مولّد رموز TOTP / HOTP

أنشئ رموز المصادقة الثنائية (TOTP وHOTP) من سر بترميز Base32 أو من عنوان otpauth://، مع SHA-1/256/512 و6–8 أرقام وعدّ تنازلي مباشر.

يعمل محليًا، دون أي رفع

الخيارات

النوع
عدد الأرقام
الفاصل الزمني

السر (Base32) أو عنوان otpauth://

الرموز

تظهر النتيجة هنا

ما الذي تفعله الأداة

تعرض تطبيقات المصادقة الثنائية مثل Google Authenticator وMicrosoft Authenticator و1Password رموزًا من ستة أرقام تتغير كل 30 ثانية. كل رمز هو كلمة مرور لمرة واحدة تُحسب من سر مشترك: يستخدم TOTP ‏(RFC 6238) الوقت، ويستخدم HOTP ‏(RFC 4226) عدّادًا. تحسب هذه الأداة الرموز نفسها من السر، لتختبر إعداد المصادقة الثنائية أو تصحح تنفيذًا على الخادم أو تتحقق مما يجب أن يكون عليه الرمز.

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

طريقة الاستخدام

  1. الصق سر Base32 (الأحرف A–Z والأرقام 2–7، ولا تهم المسافات ولا حالة الأحرف) أو الصق عنوان otpauth:// كاملًا من رمز QR. انقر على مثال للتجربة.
  2. اختر TOTP أو HOTP، واضبط الخوارزمية وعدد الأرقام والفاصل الزمني بما يطابق الحساب. إعدادات عنوان otpauth لها الأولوية.
  3. في HOTP أدخل العدّاد واستخدم العدّاد +1 للتنقل بين الرموز.
  4. انسخ الرمز الحالي. يبيّن العدّ التنازلي المدة المتبقية لصلاحيته.

مثال

السر التجريبي JBSWY3DPEHPK3PXP هو صيغة Base32 للبايتات “Hello!” متبوعة بـ 0xDEADBEEF. يصف العنوان التالي، كما يُرمَّز في رمز QR، حسابًا يستخدمه بالإعدادات الافتراضية:

otpauth://totp/Example:alice@example.com?secret=JBSWY3DPEHPK3PXP&issuer=Example&algorithm=SHA1&digits=6&period=30

عند وقت Unix ‏1700000000 يعطي هذا السر الرمز 324 550، ويتبقى من النافذة 10 ثوانٍ.

كيف يُحسب الرمز

يُفك ترميز السر من Base32 إلى بايتات. في TOTP يكون العدّاد هو وقت Unix بالثواني مقسومًا على الفاصل الزمني ومقرّبًا إلى الأسفل. يُكتب العدّاد في 8 بايتات ويُوقَّع باستخدام HMAC والسر. يختار الاقتطاع الديناميكي 4 بايتات من ناتج HMAC بناءً على آخر نصف بايت فيه، ثم يُختزل العدد إلى عدد الأرقام المطلوب مع الإبقاء على الأصفار البادئة.

الأسئلة الشائعة

› لماذا لا يطابق الرمز الرمزَ الظاهر في تطبيق المصادقة؟

تعتمد رموز TOTP على الساعة، لذا تأكد أولًا من ضبط وقت جهازك تلقائيًا. ثم تأكد من أن الخوارزمية وعدد الأرقام والفاصل الزمني تطابق الحساب. تستخدم معظم الخدمات SHA-1 و6 أرقام و30 ثانية، وتتجاهل تطبيقات المصادقة الإعدادات الأخرى ما لم يذكرها رمز QR.

› ما الفرق بين TOTP وHOTP؟

يستخدم TOTP ‏(RFC 6238) الوقت الحالي مقسومًا على الفاصل الزمني عدّادًا، لذا يتغير الرمز كل 30 ثانية. أما HOTP ‏(RFC 4226) فيستخدم عدّادًا يزيد بمقدار واحد عند استخدام كل رمز. كلاهما يمرر السر والعدّاد عبر HMAC ويحتفظ بآخر 6 إلى 8 أرقام.

› هل يُحفظ السر أو يُرسل إلى أي مكان؟

لا. تُحسب الرموز في متصفحك باستخدام Web Crypto API. لا يُحفظ السر ولا يُكتب في شريط العنوان ولا يُضمَّن في روابط المشاركة، فالرابط المشترك يحمل الإعدادات فقط. ومع ذلك، يمنح سر المصادقة الثنائية وصولًا كاملًا إلى العامل الثاني، فلا تلصق إلا الأسرار التي تملكها.

› هل يمكنني استخدامه عند إضافة المصادقة الثنائية إلى تطبيقي؟

نعم. انقر على سر عشوائي لإنشاء سر Base32 بطول 160 بت، وضعه في عنوان otpauth:// أو رمز QR لمستخدميك، ثم قارن الرموز التي يولّدها الخادم بالرموز المعروضة هنا. تقبل الخوادم عادةً الرمز السابق والتالي أيضًا لتحمّل فروق الساعة.