التجزئة/التشفير

TOTP Generator/Verifier

كلمات مرور لمرة واحدة قائمة على الوقت (TOTP، RFC 6238) — توليد الرمز الحالي من سر (secret) والتحقق من رمز مُدخل مع تحمل انحراف الساعة.

------


                    

TOTP (Time-based One-Time Password, RFC 6238) is a two-factor authentication algorithm that generates a one-time code from a secret and the current time. It's exactly what runs under the hood in Google Authenticator, Authy, and similar apps.

How to use it

Common uses

Things to keep in mind

A TOTP code is only valid for a short window (usually 30 seconds) — that time limit is the main protection, not the secret alone.

Code accuracy depends directly on the device's clock being synced; a noticeable clock drift is the most common cause of rejected 2FA codes.

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

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

ما هو المعيار الذي تعتمد عليه هذه الأداة في توليد الرموز؟

تعتمد الأداة على معيار RFC 6238 (TOTP)، الذي يشتق رمزًا لمرة واحدة من سر مشترك ووقت حالي عبر HMAC، وهو ما تستخدمه معظم تطبيقات المصادقة الثنائية.

لماذا يتغير الرمز كل 30 ثانية؟

يُقسَّم الوقت إلى خطوات ثابتة (period)، عادة 30 ثانية، ويُشتق رمز جديد لكل خطوة زمنية؛ هذا التدوير يحد من صلاحية الرمز المسروق أو المُعترَض إلى فترة قصيرة جدًا.

لماذا يفشل التحقق من الرمز رغم إدخاله بشكل صحيح؟

غالبًا يعود السبب إلى عدم تزامن ساعة الجهاز؛ لأن التوليد يعتمد على الوقت الحالي، فأي انحراف كبير في ساعة الجهاز عن الوقت الفعلي (عادة يُصحَّح عبر NTP) يجعل الرمز غير صالح حتى ضمن نافذة التسامح.

هل يحمي TOTP من التصيّد الاحتيالي؟

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

لماذا يقبل الخادم الفترة الزمنية السابقة أيضًا، لا الحالية فقط؟

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

مقالات: التجزئة/التشفير

Hash Generator: ما الفرق بين MD5 وSHA-1 وSHA-256

لماذا لا تزال MD5 تُستخدم للتحقق من سلامة الملفات، لكن ليس لكلمات المرور.

Checksum Verifier: كيف تتحقق من أن الملف غير تالف

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

HMAC: كيف تختلف التجزئة بمفتاح عن التجزئة العادية

لماذا لا يحمي SHA-256 العادي من التلاعب برسالة، بينما يحمي HMAC.

Bcrypt: لماذا تُجزَّأ كلمات المرور ببطء لا بسرعة

لماذا يُعدّ SHA-256 السريع خيارًا سيئًا لكلمات المرور، وbcrypt البطيء هو الخيار الصحيح.

UUID: كيف تُولَّد معرّفات لا تتكرر تقريبًا أبدًا

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

مولّد كلمات المرور: ما الذي يجعل كلمة المرور قوية فعلًا

لماذا تكون كلمة مرور طويلة من كلمات القاموس أقوى من كلمة قصيرة برموز وأرقام.

AES: كيف يعمل التشفير المتماثل

لماذا يشفّر نفس المفتاح البيانات ويفكّ تشفيرها في AES، وكيف يختلف ذلك عن التشفير غير المتماثل.

Argon2: لماذا فازت هذه الخوارزمية بمسابقة تجزئة كلمات المرور

كيف تدافع Argon2 بشكل أفضل ضد الهجمات باستخدام بطاقات الرسوميات مقارنة بخوارزميات تجزئة كلمات المرور الأقدم.

Scrypt: لماذا تحتاج الخوارزمية إلى كل هذه الذاكرة

لماذا تتطلب scrypt عمدًا ذاكرة كبيرة لتصعيب الكسر على أجهزة ASIC.

PBKDF2: أقدم معيار لتمديد المفاتيح

لماذا يتزايد عدد تكرارات PBKDF2 الموصى به كل عام.

X.509: ماذا يوجد داخل شهادة SSL

ما الذي يتحقق منه المتصفح بالضبط في شهادة موقع قبل عرض القفل الأخضر.

PGP: كيف يعمل التشفير بمفتاح عام وخاص

لماذا يمكن مشاركة المفتاح العام لـ PGP بحرية، لكن ليس المفتاح الخاص أبدًا.