DevToys Web Pro iconDevToys Web Proوبلاگ
به ما امتیاز دهید:
افزونه مرورگر را امتحان کنید:

رمزگذار / رمزگشای Base62

حالت

متن

  • Base62

  • جزئیات فنی

    نحوه کار رمزگذار / رمزگشای Base62

    این ابزار چه کاری انجام می‌دهد

    Base62 داده‌های باینری را با استفاده از 62 کاراکتر الفبایی-عددی (0-9، A-Z، a-z) کدگذاری می‌کند و رشته‌های Base62 را دوباره به متن یا هگز دیکد می‌کند. خروجی فقط شامل کاراکترهای امن برای URL است و هیچ پَدینگ، و هیچ نماد '+', '/', یا '=' ندارد، بنابراین می‌توان آن را بدون percent-encoding مستقیماً در URLها و پارامترهای query قرار داد.

    موارد استفادهٔ رایج برای توسعه‌دهندگان

    کوتاه‌کننده‌های URL (bit.ly، t.co، goo.gl در گذشته) از Base62 برای کدگذاری شناسه‌های عددی افزایشی به slugهای فشرده و مناسب اشتراک‌گذاری استفاده می‌کنند. توسعه‌دهندگان بک‌اند شناسه‌های کوتاه و غیرقابل‌حدس برای پست‌های اجتماعی، توییت‌ها و دارایی‌های آپلودشده تولید می‌کنند. بازاریاب‌ها کمپین‌ها را با پارامترهای UTM کدگذاری‌شده با Base62 ردیابی می‌کنند که از Base64 تمیزتر به نظر می‌رسند.

    قالب‌ها، نوع‌ها یا گونه‌های داده

    این ابزار از رایج‌ترین ترتیب الفبای Base62 استفاده می‌کند: ارقام 0-9، سپس حروف بزرگ A-Z، سپس حروف کوچک a-z. پیاده‌سازی‌های مختلف ممکن است ترتیب‌های متفاوتی داشته باشند (برخی حروف کوچک را قبل از حروف بزرگ می‌آورند)، بنابراین پیش از به‌اشتراک‌گذاری داده‌های کدگذاری‌شده بین سیستم‌ها، همیشه سازگاری الفبا را بررسی کنید. خروجی هم برای متن UTF-8 و هم برای ورودی بایت خامِ هگز نمایش داده می‌شود.

    دام‌های رایج و حالت‌های لبه‌ای

    Base62 استاندارد نشده است — ترتیب الفبا بین کتابخانه‌ها متفاوت است (این ابزار از 0-9، A-Z، a-z استفاده می‌کند که با قرارداد npm `base-x` هم‌خوان است). بایت‌های صفرِ ابتدایی در داده‌های باینری توسط رمزگذار حفظ می‌شوند، اما یک رشته Base62 که با '0' شروع می‌شود به همان مقدارِ رشته‌ای بدون آن دیکد می‌شود — فرم یکتای (canonical) مشخصی وجود ندارد. برای سازگاری بین زبان‌ها، الفبای دقیقِ استفاده‌شده را مستند کنید.

    چه زمانی از این ابزار استفاده کنیم در برابر کُد

    از ابزار مرورگر برای کدگذاری و دیکد تک‌بار مصرف هنگام دیباگ کردن slugهای URL یا شناسه‌های کوتاه استفاده کنید. در کد، بسته npm `base-x` (JavaScript)، `pybase62` یا تبدیلِ دست‌نویس (Python)، یا پیاده‌سازی‌های Java در `Base62.io` را ترجیح دهید — و همیشه در تست‌ها الفبا را ثابت (pin) کنید تا یک بازآرایی (refactor) در آینده بی‌سروصدا کدگذاری را تغییر ندهد.