طريقة الاستخدام
- اختر «ترميز» لتحويل النص إلى Base62، أو «فك الترميز» لإعادة Base62 إلى نص.
- اختر ترتيب «الأبجدية» الذي يطابق نظامك: 0-9 A-Z a-z (الافتراضي) أو 0-9 a-z A-Z.
- اكتب المدخلات أو الصقها، أو افتح ملفًا صغيرًا (حتى نحو 20 كيلوبايت).
- انسخ النتيجة أو نزّلها كملف.
ما هو Base62؟
يستخدم Base62 الأرقام العشرة والأحرف الكبيرة الـ 26 والأحرف الصغيرة الـ 26. وهو أكبر أبجدية تتكوّن من الأحرف والأرقام فقط، لذا لا تحتاج النتيجة إلى أي تهريب في عناوين URL أو أسماء الملفات أو مفاتيح قواعد البيانات أو المعرّفات في الشيفرة البرمجية. يحمل كل حرف نحو 5.95 بت، ما يجعل حجم المخرجات نحو 1.34 ضعف حجم المدخلات، أي أنه يكاد يضاهي Base64 في الإيجاز، لكن دون + أو / أو = أو - أو _.
ولأن 62 ليس قوة للعدد 2، تعامل هذه الأداة المدخلات كلها على أنها عدد واحد كبير وتحوّله إلى الأساس 62، كما في Base58 وBase36. ويُكتب كل بايت صفري بادئ على هيئة 0 بادئ كي يبقى محفوظًا عند الترميز ثم فك الترميز. وتقتصر المدخلات على نحو 20 كيلوبايت لأن العمليات الحسابية تتباطأ مع البيانات الكبيرة.
لا يوجد معيار موحّد لـ Base62
على خلاف Base64، ليس لـ Base62 أي RFC، وتختلف تطبيقاته بطرق تجعل مخرجاتها غير متوافقة:
- ترتيب الأبجدية. توفّر هذه الأداة
0-9A-Za-z(الافتراضي) و0-9a-zA-Z. وتضع بعض المكتبات الأخرى الأحرف قبل الأرقام. - الأصفار البادئة. تحتفظ بعض التطبيقات بحرف
0واحد لكل بايت صفري بادئ، كما تفعل هذه الأداة، وبعضها يحذفها، أما الصيغ ذات الطول الثابت فتحشو النتيجة حتى عرض محدد. - ما الذي يُرمَّز. كثير من دوال Base62 ترمّز عددًا صحيحًا، مثل معرّف في قاعدة بيانات، بدلًا من سلسلة بايتات. وبعضها الآخر يقسّم البيانات إلى كتل ثابتة الحجم.
إذا ظهرت سلسلة قادمة من نظام آخر بشكل غير مفهوم بعد فك ترميزها هنا، فجرّب خيار الأبجدية الآخر. وإذا استمر الفشل، فالأرجح أن ذلك النظام يستخدم طريقة مختلفة.
أين يُستخدم Base62
تحوّل خدمات اختصار الروابط معرّفًا يتزايد تلقائيًا إلى رمز قصير: فسبعة أحرف Base62 تغطي أكثر من 3.5 تريليون قيمة. وتستخدم المعرّفات القابلة للفرز مثل KSUID صيغة Base62 ثابتة من 27 حرفًا، وتستخدم خدمات كثيرة Base62 لمفاتيح API والرموز المميزة، لأن النقر المزدوج يحدد السلسلة كاملة ويمكن لصقها في أي مكان. ولتحويل عدد صحيح واحد، استخدم محوّل أنظمة الأعداد، أو بضعة أسطر من الشيفرة:
// JavaScript: تحويل عدد صحيح (BigInt) إلى Base62
const A = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
function toBase62(n) {
let s = '';
do { s = A[Number(n % 62n)] + s; n /= 62n; } while (n > 0n);
return s;
}
toBase62(123456789n); // '8M0kX'
المواصفات
| الأبجدية | 0-9 A-Z a-z |
|---|---|
| حجم المخرجات | نحو 134% (تحويل الأعداد الكبيرة) |
| الحشو | لا يوجد |
| المعيار | لا يوجد معيار رسمي |
| حساس لحالة الأحرف | نعم |
أمثلة
| المدخلات (UTF-8) | المخرجات |
|---|---|
Hello, World! | 1wJfrzvdbtXUOlUjUf |
Base64.is | NWxjrFq4r3rv |
你好 | 19PqtKE1t |
الأسئلة الشائعة
هل Base62 آمن لعناوين URL؟
لماذا تُفك سلسلة Base62 الخاصة بي إلى نص خاطئ؟
تختلف تطبيقات Base62 في ترتيب الأبجدية وفي الطريقة. بدّل بين أبجديتي 0-9A-Za-z و0-9a-zA-Z. وإذا لم تنجح أيٌّ منهما، فالأرجح أن السلسلة أُنشئت من عدد صحيح أو بخوارزمية أخرى.
هل Base62 حساس لحالة الأحرف؟
نعم. تمثّل الأحرف الكبيرة والصغيرة قيمًا مختلفة، لذا يجب ألا تُحوَّل سلسلة Base62 أبدًا إلى أحرف كبيرة أو صغيرة.