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

حوّل النصوص أو البايتات الست عشرية أو الملفات إلى Base32 وبالعكس. اختر أبجدية RFC 4648 أو Base32hex أو Crockford أو z-base-32، وتحكّم في الحشو وحالة الأحرف.

تعمل بالكامل داخل متصفحك، ولا يُرفع أي شيء.

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

  1. اختر «ترميز» لتحويل النص إلى Base32، أو «فك الترميز» لإعادة Base32 إلى نص.
  2. اختر «النوع». النوع RFC 4648 هو الافتراضي، وهو المستخدم في مفاتيح TOTP السرية ومعظم المكتبات البرمجية.
  3. اكتب المدخلات أو الصقها، أو افتح ملفًا. تتحدّث النتيجة فور الكتابة.
  4. انسخ النتيجة أو نزّلها كملف.

ما هو Base32؟

يمثّل Base32 البيانات الثنائية باستخدام 32 حرفًا قابلًا للطباعة. يحمل كل حرف 5 بتات، فتتحول كل 5 بايتات من المدخلات إلى 8 أحرف في المخرجات. وتكون المخرجات أكبر من المدخلات بنحو 60%، وهي زيادة أكبر مما في Base64، لكن الأبجدية تتجنب الأحرف الصغيرة والرموز التي يسهل الخلط بينها.

تستخدم الأبجدية القياسية المعرّفة في RFC 4648 الحروف A-Z والأرقام 2-7. وقد استُبعدت الأرقام 0 و1 و8 و9 حتى لا تُخلط بالحروف O وI وB. وعندما لا يكون طول المدخلات من مضاعفات 5 بايتات، تُحشى المخرجات بالرمز = حتى يصبح طولها من مضاعفات 8 أحرف.

أين يُستخدم Base32

  • المصادقة الثنائية. المفاتيح السرية لـ TOTP وHOTP في تطبيقات المصادقة (قيمة secret= في رابط otpauth://) هي سلاسل Base32.
  • الأنظمة غير الحساسة لحالة الأحرف. لأن الأبجدية تستخدم حالة أحرف واحدة، يبقى Base32 سليمًا في أنظمة الملفات وتسميات DNS وعناوين البريد الإلكتروني التي تتجاهل حالة الأحرف.
  • الرموز التي يكتبها البشر. تستخدم مفاتيح الترخيص وعناوين onion والمعرّفات القصيرة Base32 لتسهيل نطقها بصوت عالٍ وكتابتها.

إن كان الحجم أهم من سهولة القراءة، فإن Base64 أكثر إيجازًا. وإن احتجت إلى معرّفات قصيرة خالية من الأحرف الملتبسة، فقارن بين Crockford Base32 وBase58.

أنواع Base32

النوعالأبجديةالاستخدام المعتاد
RFC 4648A-Z 2-7مفاتيح TOTP السرية، والاستخدام العام
Base32hex0-9 A-Vترتيب الفرز يطابق البايتات الخام، وDNSSEC NSEC3
Crockford0-9 A-Z دون I وL وO وUمعرّفات سهلة القراءة، وULID
z-base-32أحرف صغيرة بترتيب مختلفمفاتيح موجّهة للبشر، وOpenPGP WKD، وZRTP

Base32 برمجيًا

# Python
import base64
base64.b32encode(b'hello')        # ترميز
base64.b32decode('NBSWY3DP')      # فك الترميز

// لا يتضمن Node.js دعمًا مدمجًا لـ Base32؛ استخدم حزمة مثل "hi-base32"
// Go (import "encoding/base32")
base32.StdEncoding.EncodeToString(data)

المواصفات

الأبجديةA-Z 2-7
حجم المخرجات8 أحرف لكل 5 بايتات (160%)
الحشوبالرمز = حتى يصبح الطول من مضاعفات 8
المعيارRFC 4648، القسم 6
حساس لحالة الأحرفلا

أمثلة

المدخلات (UTF-8)المخرجات
Hello, World!JBSWY3DPFQQFO33SNRSCC===
Base64.isIJQXGZJWGQXGS4Y=
你好4S62BZNFXU======

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

هل Base32 حساس لحالة الأحرف؟

أبجدية RFC 4648 معرّفة بالأحرف الكبيرة، لكن أداة فك الترميز هذه تقبل المدخلات بالأحرف الصغيرة أيضًا. استخدم خيار «أحرف صغيرة» إن احتجت إلى مخرجات بالأحرف الصغيرة.

لماذا تنتهي سلسلة Base32 لديّ بعلامات =؟

علامات المساواة هي الحشو الذي يكمل الكتلة الأخيرة إلى 8 أحرف. وتقبل أنظمة كثيرة، ومنها معظم تطبيقات TOTP، سلاسل Base32 بلا حشو. أوقف «الحشو» لإزالته.

كم يزيد حجم Base32 على البيانات الأصلية؟

تتحول كل 5 بايتات إلى 8 أحرف، لذا يبلغ حجم مخرجات Base32 نحو 1.6 ضعف حجم المدخلات، مقابل نحو 1.33 ضعف في Base64.

هل يمكنني فك ترميز مفتاح TOTP سري بهذه الأداة؟

نعم. الصق المفتاح السري في تبويب «فك الترميز» واختر «ست عشري» في «صيغة المخرجات» لرؤية بايتات المفتاح الخام. وتُتجاهل المسافات الموجودة في المفتاح.