UTILS.
۱۰۰٪ در مرورگر
🔢

کدگذاری و کدگشایی Base62

اعداد صحیح یا رشته‌های بایتی را به Base62 فشرده و ایمن برای URL (0-9A-Za-z) و برعکس تبدیل کنید، با پشتیبانی BigInt و حالت الفبای GMP، همه در مرورگر.

— خروجی اینجا نمایش داده می‌شود —

درباره این ابزار

ابزار Base62 اعداد و رشته‌های بایتی را به الفبای فشرده ۶۲ نمادی 0-9A-Za-z کدگذاری و برعکس کدگشایی می‌کند. Base62 برای شناسه‌های کوتاه، slugهای URL و لینک‌های کوتاه‌شده محبوب است، چون بدون کاراکترهای +، / یا = که Base64 استفاده می‌کند، ایمن برای URL باقی می‌ماند. تمام تبدیل به‌صورت محلی در مرورگر شما با JavaScript BigInt اجرا می‌شود، بنابراین مقادیر بسیار بزرگ دقیق‌اند و هیچ‌چیزی بارگذاری نمی‌شود.

حالت عدد صحیح ورودی را به‌عنوان یک عدد صحیح با دقت دلخواه (دهدهی، یا hex با پیشوند 0x) در نظر می‌گیرد: کدگذاری مکرراً بر 62 تقسیم می‌کند و alphabet[remainder] را در ابتدا اضافه می‌کند، و کدگشایی Σ alphabet.indexOf(ch)·62^position را محاسبه می‌کند. حالت بایت بایت‌های ورودی (متن UTF-8 یا hex) را به‌عنوان یک عدد بزرگ big-endian در نظر می‌گیرد و همان تبدیل base-62 را اعمال می‌کند، اما بایت‌های صفر ابتدایی را نیز به سبک Bitcoin-Base58 حفظ می‌کند: هر بایت 0x00 ابتدایی به یک کاراکتر '0' ابتدایی تبدیل می‌شود تا رفت‌وبرگشت‌ها بدون اتلاف باشند.

الفبای استاندارد ابتدا ارقام، سپس حروف بزرگ و سپس حروف کوچک را مرتب می‌کند (0-9A-Za-z). برخی کتابخانه‌ها — به‌ویژه آن‌هایی که بر پایه GMP ساخته شده‌اند — ارقام، حروف کوچک و سپس حروف بزرگ را مرتب می‌کنند (0-9a-zA-Z)، که برای مقدار یکسان خروجی متفاوتی تولید می‌کند؛ کلید تعویض الفبا به شما اجازه می‌دهد با هر کدام که سیستم‌تان استفاده می‌کند مطابقت کنید. جهت، حالت عدد صحیح یا بایت، قالب ورودی برای بایت‌ها، و حالت الفبا را انتخاب کنید.

پرسش‌های پرتکرار

تفاوت بین حالت عدد صحیح و حالت بایت چیست؟
حالت عدد صحیح یک عدد منفرد با دقت دلخواه (دهدهی یا hex با 0x) را به رشته Base62 و برعکس به یک عدد صحیح دهدهی تبدیل می‌کند. حالت بایت یک دنباله از بایت‌ها (از متن UTF-8 یا hex) را به‌عنوان یک عدد بزرگ big-endian تبدیل می‌کند و بایت‌های صفر ابتدایی را به‌عنوان کاراکترهای صفرِ الفبا حفظ می‌کند تا داده باینری دقیقاً رفت‌وبرگشت کند.
چرا دو الفبا وجود دارد؟
الفبای استاندارد 0-9A-Za-z است (حروف بزرگ پیش از کوچک). کتابخانه‌های مبتنی بر GMP از 0-9a-zA-Z استفاده می‌کنند (حروف کوچک پیش از بزرگ). همان مقدار زیر هر کدام متفاوت کدگذاری می‌شود، بنابراین کلید تعویض به شما اجازه می‌دهد با هر ترتیبی که ابزارهای دیگر شما انتظار دارند سازگار شوید.
چه اندازه عددی را می‌تواند مدیریت کند؟
هر اندازه‌ای. این ابزار از JavaScript BigInt استفاده می‌کند، بنابراین محدودیت دقت 2^53 وجود ندارد — می‌توانید اعداد صحیح و رشته‌های بایتی با طول دلخواه را دقیقاً کدگذاری و کدگشایی کنید، که برای hashها، UUIDها و شناسه‌های بلند ضروری است.
صفرهای ابتدایی در حالت بایت چگونه مدیریت می‌شوند؟
هر بایت 0x00 ابتدایی به یک کاراکتر صفرِ الفبای ابتدایی کدگذاری می‌شود (مانند '1' ابتدایی Base58). هنگام کدگشایی، هر کاراکتر صفرِ الفبای ابتدایی یک بایت 0x00 را بازمی‌گرداند، بنابراین کدگذاری و سپس کدگشایی دقیقاً دنباله بایت اصلی را برمی‌گرداند.

ابزارهای بیشتر