مولّد رموز TOTP / 2FA
أنشئ رمز TOTP/2FA من مفتاح سري Base32 فورًا — 100% داخل متصفحك، ومفتاحك السري لا يغادر جهازك أبدًا. إعداد QR + التحقق من الرمز. مجاني وبلا تسجيل.
خيارات متقدمة
ما هو مولّد رموز TOTP / 2FA؟
يحوّل مولّد TOTP مفتاحًا سريًا مشتركًا إلى الرمز الدوّار لمرة واحدة الذي يشغّل المصادقة الثنائية. TOTP — كلمة مرور لمرة واحدة قائمة على الوقت، مُعرَّفة في RFC 6238 — يأخذ مفتاحًا سريًا Base32 والوقت الحالي، ويقسم الوقت إلى خطوات ثابتة (30 ثانية افتراضيًا)، ويشغّل HMAC على عدّاد الخطوات لاشتقاق رمز رقمي قصير. ولأن كلًا من تطبيق المصادقة لديك والخادم يحملان المفتاح السري نفسه ويقرآن الساعة نفسها، فإنهما يحسبان الرمز نفسه دون تبادله عبر الشبكة أبدًا. هذا هو جوهر 2FA: حتى لو تسربت كلمة مرورك، يظل المهاجم بحاجة إلى الرمز الذي لا ينتجه إلا مفتاحك السري الآن.
"The TOTP algorithm is a time-based variant of the HOTP algorithm... TOTP = HOTP(K, T), where T is an integer representing the number of time steps between the initial counter time T0 and the current Unix time." — RFC 6238, Section 4
تؤدي هذه الأداة ثلاث مهام على صفحة واحدة. فهي تولّد رمزًا حيًا من أي مفتاح سري Base32 مع عدّ تنازلي ومعاينة للرمز التالي؛ وتُعِدّ مفتاحًا سريًا جديدًا تمامًا، فتبني رابط otpauth:// ورمز QR الذي تمسحه إلى تطبيق مصادقة؛ وتتحقّق من رمز مقابل مفتاح سري مع تسامح قدره ±خطوة زمنية واحدة، بما يطابق كيف تقبل الخوادم الحقيقية رمزًا تجدّد للتو. كل ذلك يعمل عبر واجهة Web Crypto API الأصلية في المتصفح دون أي اعتماديات ودون أي طلبات شبكية.
يلجأ المطوّرون إلى مولّد TOTP باستمرار: لإعادة إنتاج الرمز الدقيق الذي يعرضه تطبيق المستخدم أثناء تصحيح تسجيل دخول 2FA، أو لتوليد مفتاح سري ورمز QR لحساب جديد، أو لتأكيد أن نافذة التحقق على الخادم تطابق ما يختبره المستخدمون، أو لبناء بيانات اختبار حتمية لاختبارات شاملة لتدفق ثنائي العامل. ولأن المفتاح السري مفتاح طويل الأمد — فأي شخص يملكه يمكنه توليد كل رمز مستقبلي — فيجب حمايته كأنه كلمة مرور. اقرن هذه الأداة بـ مولّد كلمات المرور العشوائية لكلمات المرور القوية ورموز الاسترداد التي ترافق 2FA، وبـ مولّد رمز QR عندما تحتاج صورة تسجيل مستقلة. ولتوقيع رموز JSON Web Tokens التي كثيرًا ما تركب فوق جلسة موثّقة، راجع مُرمِّز JWT.
// Generate a TOTP code in the browser with the Web Crypto API
// (SHA-1, 6 digits, 30s period — RFC 6238 defaults)
async function generateTotp(base32Secret, time = Date.now()) {
// Decode the Base32 secret to raw bytes (A-Z, 2-7)
const alpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567';
let bits = '';
for (const c of base32Secret.replace(/=+$/, '').toUpperCase())
bits += alpha.indexOf(c).toString(2).padStart(5, '0');
const bytes = new Uint8Array(
bits.match(/.{8}/g).map((b) => parseInt(b, 2)));
// Counter = number of 30s steps since the Unix epoch (8-byte big-endian)
const counter = Math.floor(time / 1000 / 30);
const msg = new Uint8Array(8);
let c = counter;
for (let i = 7; i >= 0; i--) { msg[i] = c & 0xff; c = Math.floor(c / 256); }
const key = await crypto.subtle.importKey(
'raw', bytes, { name: 'HMAC', hash: 'SHA-1' }, false, ['sign']);
const hmac = new Uint8Array(await crypto.subtle.sign('HMAC', key, msg));
// Dynamic truncation (RFC 4226) -> 6-digit code
const off = hmac[hmac.length - 1] & 0x0f;
const bin = ((hmac[off] & 0x7f) << 24) | (hmac[off + 1] << 16) |
(hmac[off + 2] << 8) | hmac[off + 3];
return (bin % 1_000_000).toString().padStart(6, '0');
}
const code = await generateTotp('JBSWY3DPEHPK3PXP');
// -> a 6-digit code that rotates every 30 seconds الميزات الرئيسية
رمز حيّ مع عدّ تنازلي
الصق مفتاحًا سريًا Base32 فيظهر رمز TOTP الحالي فورًا مع حلقة عدّ تنازلي مدتها 30 ثانية ومعاينة للرمز التالي — دون زر توليد ودون انتظار.
إعداد المفتاح السري ورمز QR
ولّد مفتاحًا سريًا Base32 عشوائيًا، ثم احصل على رابط otpauth:// ورمز QR لمسحه مباشرةً في Google Authenticator أو Authy أو 1Password.
أداة تحقق مدمجة للرموز
افحص رمزًا مقابل مفتاح سري بالتسامح نفسه ±خطوة زمنية واحدة الذي تستخدمه الخوادم الحقيقية، حتى يبقى الرمز الذي تجدّد للتو صالحًا.
خوارزمية وأرقام قابلة للتهيئة
بدّل بين SHA-1 وSHA-256 وSHA-512، واختر 6 أو 8 أرقام، واضبط فترة 30 أو 60 ثانية لتطابق متطلبات أي مزوّد.
المفتاح السري لا يغادر متصفحك
يُحسَب كل رمز محليًا عبر واجهة Web Crypto API الأصلية. لا يُرفع أي شيء أو يُسجَّل أو يُخزَّن — بشكل يمكن التحقق منه، حتى دون اتصال.
بلا أي اعتماديات
مبني فقط على واجهة Web Crypto API في المتصفح — بلا مكتبات خارجية ولا قياس عن بُعد ولا أي طلبات شبكية على الإطلاق.
أمثلة على مولّد TOTP
رمز TOTP قياسي من 6 أرقام (SHA-1، 30 ثانية)
secret: JBSWY3DPEHPK3PXP algorithm: SHA-1 digits: 6 period: 30s
Code: 282760 · expires in 30s
المفتاح السري الاختباري الأساسي في RFC 6238 بالإعدادات الافتراضية التي يستخدمها كل تطبيق رئيسي — SHA-1 و6 أرقام وفترة مدتها 30 ثانية. الرمز قائم على الوقت، لذا تعتمد القيمة الدقيقة على الوقت الحالي؛ تعرض الأداة عدًّا تنازليًا حيًّا والرمز التالي.
رمز TOTP مؤسسي من 8 أرقام (SHA-256)
secret: JBSWY3DPEHPK3PXP algorithm: SHA-256 digits: 8 period: 30s
Code: 31094217 · expires in 30s
تُصدر بعض الأنظمة المؤسسية وعالية الأمان رموزًا من 8 أرقام موقّعة بـ SHA-256 بدلًا من الإعداد الافتراضي SHA-1. طابِق الخوارزمية وعدد الأرقام والفترة تمامًا مع ما يتوقعه خادمك، وإلا فلن يُقبَل الرمز المُنشأ.
رابط إعداد otpauth:// لتطبيقات المصادقة
issuer: Acme account: alice@example.com secret: JBSWY3DPEHPK3PXP
otpauth://totp/Acme:alice@example.com?secret=JBSWY3DPEHPK3PXP&issuer=Acme&algorithm=SHA1&digits=6&period=30
تبني الأداة رابط otpauth:// قياسيًا وتعرضه كرمز QR. امسحه بـ Google Authenticator أو Authy أو 1Password — أو الصق الرابط مباشرةً — لتسجيل المفتاح السري على جهازك.
كيفية استخدام مولّد TOTP
- 1
الصق مفتاحًا سريًا Base32
في تبويب التوليد، الصق مفتاحك السري Base32 (مثل JBSWY3DPEHPK3PXP). يظهر رمز TOTP الحالي فورًا مع عدّ تنازلي مدته 30 ثانية — دون زر توليد.
- 2
اضبط الخيارات المتقدمة (اختياري)
افتح الخيارات المتقدمة لتغيير الخوارزمية (SHA-1/256/512) أو عدد الأرقام (6 أو 8) أو الفترة (30 أو 60 ثانية) لتطابق ما أصدره مزوّدك.
- 3
الإعداد أو التحقق
استخدم تبويب الإعداد لتوليد مفتاح سري ورمز QR لتطبيق مصادقة، أو تبويب التحقق لفحص رمز مقابل مفتاح سري مع تسامح قدره ±خطوة زمنية واحدة.
الأخطاء الشائعة
عدم تطابق الخوارزمية أو الأرقام
مفتاح سري صدر لـ SHA-256 أو 8 أرقام ينتج رمزًا مختلفًا تمامًا تحت الإعدادات الافتراضية SHA-1 / 6 أرقام. طابِق معطيات المزوّد تمامًا.
secret + SHA-1/6 digits // but server expects SHA-256/8
algorithm: SHA-256, digits: 8 // match the otpauth:// URI
انحراف الساعة
إذا انحرفت ساعة الجهاز بأكثر من خطوة زمنية واحدة، فلن يُقبَل الرمز. زامِن ساعة النظام قبل مقارنة الرموز.
system clock 90s fast // code is two steps ahead
enable NTP / automatic time // code aligns with server
مفتاح سري Base32 غير صالح
يستخدم Base32 الأحرف A–Z والأرقام 2–7 فقط. المسافات من مفتاح مطبوع مقبولة، لكن 0 أو 1 أو 8 ليست Base32 صالحة وستفشل في فك الترميز.
secret: "JBSW 0NE8" // contains 0 and 8
secret: "JBSWY3DPEHPK3PXP" // valid Base32
حالات الاستخدام الشائعة
- تصحيح تدفق تسجيل دخول 2FA
- أعِد إنتاج الرمز الدقيق الذي يعرضه تطبيق المصادقة لدى المستخدم، لتتمكن من تتبّع سبب رفض تسجيل دخول ثنائي العامل.
- تسجيل حساب جديد
- ولّد مفتاحًا سريًا Base32 جديدًا ورمز QR، ثم امسحه في Google Authenticator أو Authy أو 1Password لإعداد 2FA.
- التحقق من نافذة خادمك
- تحقّق من الرموز مقابل مفتاح سري لتأكيد أن خادمك الخلفي يقبل رمزًا تجدّد للتو ويرفض رمزًا منتهي الصلاحية.
- بناء بيانات اختبار شاملة
- احسب رموز TOTP حتمية من مفتاح سري معروف لقيادة اختبارات آلية لتدفق مصادقة ثنائي العامل.
- مطابقة الإعدادات المؤسسية
- أعِد إنتاج رموز من 8 أرقام أو SHA-256 عندما يخرج مزوّد عن الإعدادات الافتراضية SHA-1 / 6 أرقام، لتصحيح عدم تطابق.
- استعادة الوصول بسرعة
- ولّد الرمز الحالي من مفتاح سري محفوظ احتياطيًا عندما يكون هاتفك غير متاح — باستخدام نسخة مؤقتة من المفتاح السري.
تفاصيل تقنية
- متوافق مع RFC 6238 / RFC 4226
- ينفّذ TOTP وفق RFC 6238 فوق خوارزمية الاقتطاع الديناميكي HOTP من RFC 4226، مع SHA-1 وSHA-256 وSHA-512 قابلة للاختيار.
- HMAC أصلي عبر Web Crypto
- تُشتق الرموز عبر HMAC الخاص بـ crypto.subtle على عدّاد الخطوات الزمنية ذي الترتيب الكبير. يجري فك ترميز Base32 والاقتطاع بالكامل داخل المتصفح.
- روابط otpauth:// قياسية، بلا اعتماديات
- تتبع روابط الإعداد صيغة Key Uri Format (otpauth://totp) مع معطيات المُصدِر والخوارزمية والأرقام والفترة. بلا مكتبات خارجية وبلا طلبات شبكية.
أفضل الممارسات
- عامِل المفتاح السري كأنه كلمة مرور
- أي شخص يملك المفتاح السري Base32 يمكنه توليد كل رمز مستقبلي. خزّنه في مدير أسرار، ولا تضعه أبدًا في التحكم بالمصدر، وفضّل المفاتيح الاختبارية هنا.
- أبقِ الساعات متزامنة
- يعتمد TOTP على وقت دقيق. فعّل مزامنة الوقت عبر الشبكة على الخوادم والأجهزة حتى تتوافق الرموز ضمن نافذة التحقق.
- التزم بالإعدادات الافتراضية ما لم تكن مطلوبة
- SHA-1 و6 أرقام وفترة 30 ثانية تعظّم توافق التطبيقات. لا تبدّل إلى 8 أرقام أو SHA-256/512 إلا عندما يفرض مزوّدك ذلك.
الأسئلة الشائعة حول مولّد TOTP / 2FA
هل استخدام مولّد TOTP / 2FA عبر الإنترنت آمن؟
otpauth://، والرمز المُنشأ، كلها تُحسَب محليًا عبر واجهة Web Crypto API الأصلية. لا توجد أي طلبات شبكية ولا تسجيل ولا تخزين ولا تحليلات مرتبطة بمدخلاتك — ويمكنك التحقق من ذلك بقطع الاتصال بالإنترنت ومراقبة استمرار عمل الأداة. هذا عكس مولّد مشبوه يرسل (POST) مفتاحك السري إلى خادم، حيث يمكن للمشغّل توليد رموزك إلى الأبد. مفتاح TOTP السري هو مفتاح مشترك طويل الأمد، لذا تظل أأمن عادة تفضيل المفاتيح السرية المؤقتة أو الاختبارية عندما تريد التجربة فقط. ما هو TOTP وما هو المفتاح السري Base32؟
JBSWY3DPEHPK3PXP هي المفتاح السري الاختباري الشهير في RFC. لماذا يختلف الرمز المُنشأ عن تطبيق المصادقة في هاتفي؟
ما الفرق بين TOTP وHOTP؟
هل يمكنني استخدام رموز من 8 أرقام أو SHA-256 / SHA-512؟
otpauth:// الذي تنشئه الأداة يسجّل تلك المعطيات حتى يسجّل تطبيقك المفتاح السري بشكل صحيح. كيف أضيف هذا المفتاح السري إلى Google Authenticator أو Authy أو 1Password؟
otpauth://. في Google Authenticator أو Authy، اضغط زر الإضافة واختر مسح رمز QR لتوجيه الكاميرا نحو رمز QR على الشاشة، أو اختر إدخال مفتاح إعداد والصق المفتاح السري Base32 مع اسم الحساب والخوارزمية المطابقين. في 1Password، حرّر عنصر تسجيل دخول وأضف حقل كلمة مرور لمرة واحدة والصق رابط otpauth:// مباشرةً. تحتاج صورة QR مستقلة للتوثيق؟ استخدم مولّد رمز QR، ولأجل المفاتيح السرية العشوائية ورموز الاسترداد المحيطة بها، استخدم مولّد كلمات المرور العشوائية. أدوات ذات صلة
عرض جميع الأدوات →مولّد تجزئة bcrypt والتحقق منها
أدوات الأمن
ولّد تجزئات كلمات المرور بـ bcrypt وتحقق منها أونلاين — تكلفة قابلة للضبط، بادئات $2b$/$2a$/$2y$. 100% في متصفحك؛ كلمة مرورك لا تُرفع أبداً.
محلّل JWT — فك ترميز الرموز
أدوات الأمن
فك ترميز رموز JWT أونلاين مع محلّل JWT المجاني. افحص الترويسة والحمولة والتوقيع وانتهاء الصلاحية والخوارزمية والمطالبات فوراً. 100% في المتصفح — رمزك لا يغادر جهازك. بلا تسجيل، بلا تتبّع.
مُنشئ وترميز JWT
أدوات الأمن
مولّد ومرمّز JWT مجاني أونلاين. ابنِ الترويسة والحمولة، ووقّع بـ HS256 أو RS256 أو ES256 فوراً. 100% في المتصفح — سرّك ومفتاحك لا يغادران جهازك.
مولّد مفتاح JWT السري — HS256/384/512
أدوات الأمن
ولّد مفتاحاً سرياً قوياً ومطابقاً للمواصفة لـ HS256/384/512 — 100% في متصفحك، لا يُرسل إلى خادم أبداً. base64url أو base64 أو hex؛ انسخه لملف .env.
مولّد تجزئة MD5 — فوري ومجاني أونلاين
أدوات الأمن
أنشئ تجزئة MD5 وSHA-256 وSHA-1 وSHA-512 فوراً — أداة مجانية تعمل في متصفّحك بدون تتبّع أو رفع بيانات. الصق النص واحصل على التجزئة في ثانية. جرّبها الآن.
مولّد كلمات مرور عشوائية — قوي وآمن ومجاني
أدوات الأمن
ولّد كلمات مرور عشوائية قوية فوراً — أداة مجانية أونلاين تعمل في متصفّحك فقط. خصّص الطول والأحرف، دُفعات حتى 50 مع تحليل الإنتروبيا. بياناتك لا تغادر جهازك.