محوّل Base32 وBase58 وAscii85
رمّز نصاً أو بايتات خام بصيغة Base32 أو Base58 أو Ascii85 أو Z85، أو فكّ أياً منها، مع الأبجدية وقواعد الحشو الخاصة بكل ترميز. يعرض جدول الخطوات كيف تتحول أول البايتات إلى محارف. أما Base64 فتغطيه أداة ترميز النص وفك ترميزه. يعمل في متصفحك، ولا يُرفع شيء.
حروف A–Z وأرقام من 2 إلى 7، خمس بتات لكل محرف، وتُكمَّل بعلامات = إلى مضاعف من ثمانية محارف. لا تهم حالة الأحرف عند الفك.
كيف جرى الحساب
تُكتب البايتات بتات وتُقطع إلى مجموعات من خمس. كل مجموعة عدد من 0 إلى 31، وتختار محرفاً واحداً.
| البتات | القيمة | المحرف |
|---|---|---|
| 01001 | 9 | J |
| 00001 | 1 | B |
| 10010 | 18 | S |
| 10110 | 22 | W |
| 11000 | 24 | Y |
| 11011 | 27 | 3 |
| 00011 | 3 | D |
| 01111 | 15 | P |
| 00101 | 5 | F |
| 10000 | 16 | Q |
| 10000 | 16 | Q |
| 00101 | 5 | F |
| 01110 | 14 | O |
| 11011 | 27 | 3 |
| 11011 | 27 | 3 |
| 10010 | 18 | S |
تُعرض أول 16 صفاً.
كيفية استخدام محوّل الترميز بالأساس
- 1. اختر ترميزاً. Base32، أو Base32 بالسداسي الممدّد، أو Base58 بأبجدية بيتكوين، أو Ascii85 كما يستخدمه Adobe، أو Z85. تصف ملاحظة تحت القائمة الترميز الذي اخترته.
- 2. حدّد نوع البيانات. نص يُقرأ كبايتات UTF-8. وبايتات سداسية عشرية تتيح لك ترميز بيانات ثنائية عشوائية، مثل مفتاح، بكتابتها أزواجاً مثل
86 4f d2 6f. - 3. رمّز أو فك. يعطي الترميز نصاً مكوّناً من أبجدية الترميز. ويعيد الفك النص إلى بايتات، تُعرض نصاً أو سداسياً عشرياً. وتُتجاهل المسافات وفواصل الأسطر في الإدخال.
- 4. راجع الخيارات. يمكن كتابة Base32 مع حشو
=أو بدونه. ويمكن إحاطة Ascii85 بـ<~و~>، وكتابة أربعة بايتات صفرية بالحرفz.
ما الغرض من هذه الترميزات
لا تُعدّ أي منها تشفيراً. كل منها يحوّل بايتات قد لا تكون قابلة للطباعة إلى نص يمكن لصقه في بريد إلكتروني أو رابط أو رمز QR أو ملف إعدادات، ويستطيع أي شخص يعرف اسم الترميز أن يعكسه. وتختلف في الأبجدية التي تستخدمها، وفي مقدار طول النص مقارنةً بالبيانات.
| الترميز | الأحرف | الطول مقارنةً بالبايتات | يصبح Hello, World |
|---|---|---|---|
| Base32 (RFC 4648) | 32 | 8 ÷ 5 من الطول | JBSWY3DPFQQFO33SNRSA==== |
| Base32 extended hex | 32 | 8 ÷ 5 من الطول | 91IMOR3F5GG5ERRIDHI0==== |
| Base58 (Bitcoin) | 58 | نحو 1.37 مرة | 2NEpo7TZsLBYdvo5V |
| Ascii85 (Adobe) | 85 | 5 ÷ 4 من الطول | <~87cURD_*#4DfTZ)~> |
| Z85 (ZeroMQ) | 85 | 5 ÷ 4 من الطول | nm=QNz.92jz/PV8 |
Base32
يقطع Base32 البايتات إلى مجموعات من خمس بتات، ويكتب كل مجموعة محرفاً من 32 محرفاً: A–Z و2–7. ولا يستخدم إلا الأرقام من 2 إلى 7، فيترك 0 و1 و8 لأنها تشبه O وI وB، ويتجاهل حالة الأحرف، فيسهل قراءته بصوت عالٍ أو كتابته. ويقرّب الحشو = الطول إلى مضاعف لثمانية. ويقدّم معيار RFC 4648 أمثلة اختبار مثل foobar ← MZXW6YTBOI======. وأسرار تطبيقات المصادقة وعناوين Tor الخفية كلها بصيغة Base32.
Base58
يعامل Base58 المدخل كله كعدد كبير واحد ويكتبه بالأساس 58، مع استبعاد 0 وO وI وl، وكذلك الرمزين + و/، ليمكن نسخ النتيجة بالنقر المزدوج ويصعب الخلط بين محارفها. ويُكتب كل بايت صفري في البداية كأول محرف، وهو 1. وأبجدية بيتكوين واحدة من عدة أبجديات Base58، إذ ترتّب أبجديات Ripple وFlickr محارفها بطرق مختلفة، فتحقق من الأبجدية التي تستخدمها بياناتك. وعناوين بيتكوين تضيف فوق ذلك مجموع تحقق وبايت إصدار، وهو مخطط يُسمى Base58Check، ولا تحسبه هذه الأداة.
Ascii85 وZ85
يقرأ كلاهما أربعة بايتات كعدد من 32 بتاً، ويكتبه خمسة أرقام بالأساس 85، ولهذا لا يزيد طوله إلا بنسبة 25 في المئة عن البيانات. أما Ascii85 لـ Adobe، المستخدم في PostScript وPDF، فيستخدم المحارف من ! إلى u، ويختصر أربعة بايتات صفرية بالحرف z، ويُحاط عادةً بـ <~ و~>. والمجموعة الأخيرة التي تحوي من بايت إلى ثلاثة بايتات تعطي محرفاً زائداً عن عدد بايتاتها. أما Z85، المعرّف في RFC 32 الخاص بـ ZeroMQ، فيستخدم أبجدية مختلفة من 85 محرفاً اختيرت لتجنب علامات الاقتباس والشرطة المائلة العكسية في الشيفرة المصدرية، ولا يملك اختصار z ولا مجموعة أخيرة قصيرة، لذا يجب أن يكون مدخله مضاعفاً لأربعة بايتات. ومثاله في المواصفة ثمانية البايتات 86 4f d2 6f b5 59 f7 5b التي ترمَّز إلى HelloWorld. وتوجد أبجديات أساس 85 أخرى، مثل تلك الواردة في RFC 1924 التي يستخدمها Git، لذا طابق الأبجدية مع مصدرها.
الأسئلة الشائعة
- هل Base32 أو Base58 تشفير؟
- لا. إنها ترميزات: يستطيع أي شخص عكسها، لأن الأبجدية والقواعد عامة. وهي تجعل البيانات قابلة للطباعة وأسهل في النسخ، لا سرية.
- لماذا يستثني Base58 بعض المحارف؟
- لتجنّب الأشكال المتشابهة والرموز. فهو يحذف 0 (صفراً) وO (حرف O الكبير) وI (حرف I الكبير) وl (حرف L الصغير)، لأنها تتشابه في كثير من الخطوط، وكذلك + و/ لأنهما يُفسدان التحديد بالنقر المزدوج. ويبقى بذلك 58 محرفاً.
- كيف أفك سلسلة Base32؟
- اختر Base32، وانتقل إلى وضع الفك، والصق السلسلة. لا تهم حالة الأحرف، وعلامات = في النهاية اختيارية. وإذا ظهر خطأ يذكر محارف بعينها، فالسلسلة غالباً من Base32 بالسداسي الممدّد أو Base64 أو ترميز آخر.
- ما الفرق بين Ascii85 وZ85؟
- يستخدم كلاهما خمسة محارف لكل أربعة بايتات، لكن أبجديتيهما مختلفتان. يستخدم Ascii85 المحارف من ! إلى u، وله اختصار z للأصفار، وقد يُحاط بـ <~ و~>. أما Z85 فيستخدم أبجدية آمنة للشيفرة المصدرية ولا يملك أي اختصارات.
- لماذا يقول Z85 إنني أحتاج إلى مضاعف لأربعة بايتات؟
- لا تعرّف مواصفة Z85 أي حشو. يجب أن تكون بياناته عدداً صحيحاً من مجموعات من أربعة بايتات، ونصه مضاعفاً لخمسة محارف. أضف البايتات بنفسك، أو استخدم Ascii85 الذي يتعامل مع مجموعة أخيرة قصيرة.
- كيف أرمّز سلسلة Base64؟
- لا تقوم هذه الصفحة بـ Base64. فأداة ترميز النص وفك ترميزه تحوّل النص إلى Base64 وعناوين URL وكيانات HTML وتعيده، وصفحة XOR Cipher تستطيع عرض البايتات السداسية بصيغة Base64.