طريقة الاستخدام
- اختر «ترميز» لتحويل النص إلى Base32، أو «فك الترميز» لإعادة Base32 إلى نص.
- اختر «النوع». النوع RFC 4648 هو الافتراضي، وهو المستخدم في مفاتيح TOTP السرية ومعظم المكتبات البرمجية.
- اكتب المدخلات أو الصقها، أو افتح ملفًا. تتحدّث النتيجة فور الكتابة.
- انسخ النتيجة أو نزّلها كملف.
ما هو 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 4648 | A-Z 2-7 | مفاتيح TOTP السرية، والاستخدام العام |
| Base32hex | 0-9 A-V | ترتيب الفرز يطابق البايتات الخام، وDNSSEC NSEC3 |
| Crockford | 0-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.is | IJQXGZJWGQXGS4Y= |
你好 | 4S62BZNFXU====== |
الأسئلة الشائعة
هل Base32 حساس لحالة الأحرف؟
أبجدية RFC 4648 معرّفة بالأحرف الكبيرة، لكن أداة فك الترميز هذه تقبل المدخلات بالأحرف الصغيرة أيضًا. استخدم خيار «أحرف صغيرة» إن احتجت إلى مخرجات بالأحرف الصغيرة.
لماذا تنتهي سلسلة Base32 لديّ بعلامات =؟
علامات المساواة هي الحشو الذي يكمل الكتلة الأخيرة إلى 8 أحرف. وتقبل أنظمة كثيرة، ومنها معظم تطبيقات TOTP، سلاسل Base32 بلا حشو. أوقف «الحشو» لإزالته.
كم يزيد حجم Base32 على البيانات الأصلية؟
تتحول كل 5 بايتات إلى 8 أحرف، لذا يبلغ حجم مخرجات Base32 نحو 1.6 ضعف حجم المدخلات، مقابل نحو 1.33 ضعف في Base64.
هل يمكنني فك ترميز مفتاح TOTP سري بهذه الأداة؟
نعم. الصق المفتاح السري في تبويب «فك الترميز» واختر «ست عشري» في «صيغة المخرجات» لرؤية بايتات المفتاح الخام. وتُتجاهل المسافات الموجودة في المفتاح.