مشفر ومفكك Base32

يمثل Base32 البيانات الثنائية باستخدام 32 محرفا: الأرقام العشرة 2-7 والحروف الكبيرة الستة والعشرون، دون 0/O أو 1/I لتجنب أخطاء القراءة. وهذا يجعله مثاليا لأي شيء يجب على الإنسان كتابته أو قراءته بصوت عال: أسرار TOTP للمصادقة الثنائية، وأكواد القسائم، والمعرفات غير الحساسة لحالة الأحرف. تشفر هذه الأداة النص إلى Base32 وتفكه مرة أخرى، وفق RFC 4648 مع حشو = قياسي.

كيفية تشفير Base32 أو فك ترميزه

  1. 1

    الصق النص المراد تحويله

    يعامل الإدخال كبايتات. UTF-8 هو التفسير الافتراضي لإدخال النص.

  2. 2

    اختر الاتجاه

    التشفير لتحويل البايتات الخام إلى سلسلة Base32؛ وفك الترميز لاستعادة البايتات.

  3. 3

    لاحظ سلوك الحشو

    يحشو RFC 4648 الخرج المشفر بعلامة `=` حتى يصبح الطول مضاعفا لـ 8. يقبل المفكك المدخلات المحشوة وغير المحشوة.

  4. 4

    انسخ النتيجة

    الناتج المشفر يكون بأحرف كبيرة ومحشوا بعلامة `=` حتى مضاعف للعدد 8.

أبجدية RFC 4648

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 2 3 4 5 6 7

لا 0، ولا 1، ولا 8، ولا 9. كل محرف يرمز 5 بتات (2^5 = 32)، لذلك تتحول 5 بايتات إدخال إلى 8 محارف خرج.

مثال محلول

ترميز سلسلة ASCII وهي foo (البايتات 0x66 0x6F 0x6F = 01100110 01101111 01101111):

  1. قسم إلى مجموعات من 5 بتات: 01100 11001 10111 10110 1111 (آخر مجموعة محشوة)
  2. طابق مع الأبجدية: M Z X W 6
  3. أضف حشو === للوصول إلى 8 محارف: MZXW6===

قواعد الحشو والطول

بايتات الإدخال طول الخرج الحشو
1 8 ======
2 8 ====
3 8 ===
4 8 =
5 8 (لا شيء)

متغيرات خارج RFC 4648

  • Base32 Hex، أبجدية 0-9A-V، يستخدمها NSEC3 في DNSSEC.
  • Crockford’s Base32، أبجدية محسنة للكتابة البشرية؛ تستبدل O0 وI/L1 عند الفك. تستخدمها ULIDs وبعض مفاتيح الترخيص.

تنفذ هذه الأداة RFC 4648 القياسي فقط؛ استخدم محولا مخصصا للنسخ المذكورة أعلاه.

أسرار TOTP

صيغة URI otpauth:// التي يستخدمها Google Authenticator وكل تطبيق 2FA حديث ترمز السر المشترك في Base32 دون حشو. عندما تمسح رمز QR لـ “My Service”، يكون معامل secret= سلسلة Base32. فكها بهذه الأداة لفحص البايتات الخام التي يستخدمها HMAC.

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

Base32 غير حساس لحالة الأحرف ويتجنب المحارف المتشابهة، وهذا مهم لأي شيء يقرأه أو يكتبه إنسان. Base64 أكثف (محارف أقل للبايتات نفسها) لكنه يطلب التمييز بين I وl وبين 0 وO، وهذا يفشل في الكتابة اليدوية والطباعة الصغيرة.

يحدد RFC 4648 الحشو عند التشفير. تحشو هذه الأداة خرجها المشفر دائما بعلامة = حتى يصبح الطول مضاعفا لـ 8. معظم المستهلكين في العالم الحقيقي (تطبيقات TOTP، ومكتبات ULID، ومحللات DNSSEC) يقبلون الإدخال غير المحشو، ويقبل المفكك هنا الصورتين المحشوة وغير المحشوة.

لا يحتوي Base32 القياسي على 0 أو 1 أو 8 أو 9 ويكون دائما بأحرف كبيرة. يتجاهل المفكك بصمت أي محرف خارج أبجدية RFC 4648، لذلك قد يفك الإدخال المكتوب بأحرف صغيرة أو المحارف الغريبة إلى بايتات خاطئة. طبّع الإدخال إلى أحرف كبيرة A-Z وأرقام 2-7 قبل الفك.

نعم، ينتقل النص إلى خادم الصفحة ليقوم بحساب النتيجة، ويُحمل النص نفسه أيضا في رابط الخطوة في العرض متعدد الخطوات. ولا يُخزن أو يُسجل.

أدوات ذات صلة

الأداة متاحة بلغات أخرى