UTILS.
‎100%‎ داخل المتصفح
🔢

ترميز وفك ترميز Base62

حوّل الأعداد الصحيحة أو سلاسل البايتات إلى Base62 المدمج الآمن للروابط (0-9A-Za-z) ومنها، مع دعم BigInt ومتغير أبجدية GMP، كل ذلك داخل المتصفح.

— يظهر المخرج هنا —

حول هذه الأداة

ترمّز أداة Base62 الأعداد وسلاسل البايتات إلى الأبجدية المدمجة المكونة من 62 رمزًا 0-9A-Za-z وتفك ترميزها. يشيع استخدام Base62 للمعرّفات القصيرة، وslugs الروابط، والروابط المختصرة لأنه يبقى آمنًا للروابط دون الأحرف +، / أو = التي يستخدمها Base64. يعمل كل التحويل محليًا في متصفحك باستخدام JavaScript BigInt، لذا تكون القيم الكبيرة كيفما كانت دقيقة ولا يُرفع أي شيء.

يعامل وضع الأعداد الصحيحة المدخل كعدد صحيح بدقة اعتباطية (عشري، أو hex مسبوق بـ 0x): يقسّم الترميز على 62 بشكل متكرر ويسبق بـ alphabet[remainder]، ويحسب فك الترميز Σ alphabet.indexOf(ch)·62^position. يعامل وضع البايتات بايتات المدخل (نص UTF-8 أو hex) كعدد كبير واحد بترتيب big-endian ويطبّق التحويل نفسه بالأساس 62، لكنه يحافظ أيضًا على بايتات الصفر البادئة بأسلوب Bitcoin-Base58: يصبح كل بايت 0x00 بادئ حرف '0' بادئًا واحدًا حتى تكون الرحلات الدائرية بلا فقدان.

ترتّب الأبجدية القياسية الأرقام، ثم الأحرف الكبيرة، ثم الصغيرة (0-9A-Za-z). بعض المكتبات — خصوصًا المبنية على GMP — ترتّب الأرقام، ثم الصغيرة، ثم الكبيرة (0-9a-zA-Z)، مما ينتج مخرجات مختلفة للقيمة نفسها؛ يتيح لك مبدّل الأبجدية مطابقة أيّهما يستخدمه نظامك. اختر الاتجاه، ووضع الأعداد الصحيحة أو البايتات، وصيغة إدخال البايتات، ومتغير الأبجدية.

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

ما الفرق بين وضع الأعداد الصحيحة ووضع البايتات؟
يحوّل وضع الأعداد الصحيحة عددًا واحدًا بدقة اعتباطية (عشري أو 0x-hex) إلى سلسلة Base62 والعكس إلى عدد صحيح عشري. يحوّل وضع البايتات تسلسلًا من البايتات (من نص UTF-8 أو hex) كعدد كبير بترتيب big-endian، ويحافظ على بايتات الصفر البادئة كأحرف صفر الأبجدية البادئة حتى تعود البيانات الثنائية بالضبط في الرحلة الدائرية.
لماذا توجد أبجديتان؟
الأبجدية القياسية هي 0-9A-Za-z (الأحرف الكبيرة قبل الصغيرة). تستخدم المكتبات المبنية على GMP الترتيب 0-9a-zA-Z (الصغيرة قبل الكبيرة). تُرمَّز القيمة نفسها بشكل مختلف تحت كل منهما، لذا يتيح لك المبدّل التوافق مع أي ترتيب تتوقعه أدواتك الأخرى.
ما أكبر عدد يمكنه التعامل معه؟
أي حجم. تستخدم الأداة JavaScript BigInt، لذا لا يوجد حد دقة 2^53 — يمكنك ترميز وفك ترميز الأعداد الصحيحة وسلاسل البايتات ذات الطول الاعتباطي بدقة، وهو أمر أساسي للتجزئات وUUIDs والمعرّفات الطويلة.
كيف تُعالَج الأصفار البادئة في وضع البايتات؟
يُرمَّز كل بايت 0x00 بادئ كحرف صفر أبجدية بادئ واحد (مثل '1' البادئ في Base58). عند فك الترميز، يستعيد كل حرف صفر أبجدية بادئ بايت 0x00 واحدًا، لذا يعيد الترميز ثم فك الترميز تسلسل البايتات الأصلي بالضبط.

المزيد من الأدوات