کدگذار و رمزگشای Base64

متن و فایل را به Base64 تبدیل کنید و برعکس. یونیکد را درست مدیریت می‌کند، از base64url امن برای URL پشتیبانی می‌کند و دقیقاً می‌گوید چرا ورودی نامعتبر خطا می‌دهد.

اجرا در مرورگر شمابدون ثبت‌نامبدون آپلود

خروجی Base64

نحوهٔ استفاده از کدگذاری / رمزگشایی Base64

  1. کدگذاری یا رمزگشایی را انتخاب کنید.
  2. ورودی خود را تایپ یا جای‌گذاری کنید. نتیجه همزمان با تایپ به‌روز می‌شود.
  3. برای URLها، JWTها و نام فایل‌ها، گزینهٔ امن برای URL را فعال کنید تا از - و _ استفاده شود و در صورت تمایل پدینگ = را حذف کنید.
  4. برای جاسازی تصویر یا فونت، روی کدگذاری فایل کلیک کنید و گزینهٔ خروجی به‌صورت data URI را فعال نگه دارید.
  5. نتیجه را کپی کنید یا با جابه‌جایی آن را برای تبدیل در جهت مخالف به ورودی برگردانید.

Base64 چگونه کار می‌کند

Base64 داده‌های باینری را با 64 کاراکتر قابل‌چاپ ASCII نمایش می‌دهد: A-Z، a-z، 0-9، + و /. هر 3 بایت ورودی به 4 کاراکتر تبدیل می‌شود، بنابراین دادهٔ کدگذاری‌شده حدود 33٪ بزرگ‌تر است. وقتی طول ورودی مضربی از 3 نباشد، یک یا دو علامت = به‌عنوان پدینگ به خروجی اضافه می‌شود. Base64 یک کدگذاری است، نه رمزنگاری: هر کسی می‌تواند آن را رمزگشایی کند.

Base64 استاندارد در برابر base64url

کاراکترهای + و / در URLها و مسیر فایل‌ها معنای خاصی دارند. الفبای امن برای URL در RFC 4648 §5 آن‌ها را با - و _ جایگزین می‌کند و معمولاً پدینگ را حذف می‌کند. JWTها، بسیاری از پارامترهای OAuth و برخی APIهای ابری از base64url استفاده می‌کنند. رمزگشای این صفحه هر دو الفبا را به‌طور خودکار می‌پذیرد.

یونیکد و دام btoa()

در مرورگرها، btoa("café") کار می‌کند اما btoa("日本") خطا می‌دهد، چون btoa فقط Latin-1 را می‌پذیرد. روش درست این است که ابتدا متن به بایت‌های UTF-8 تبدیل شود؛ همان کاری که این ابزار انجام می‌دهد. در JavaScript: btoa(String.fromCharCode(...new TextEncoder().encode(text)))، یا در Node.js: Buffer.from(text).toString('base64').

کاربردهای رایج

  • data URI برای تصاویر و فونت‌های کوچک در CSS یا HTML
  • هدرهای احراز هویت HTTP Basic (user:password کدگذاری‌شده)
  • پیوست‌های باینری در payloadهای JSON و ایمیل (MIME)
  • Secretهای Kubernetes که مقادیر را به‌صورت Base64 ذخیره می‌کنند

پرسش‌های متداول

آیا Base64 رمزنگاری است؟
خیر. Base64 یک کدگذاری برگشت‌پذیر و بدون کلید است. هر کسی می‌تواند آن را رمزگشایی کند، پس هرگز از آن برای پنهان کردن رمز عبور یا اطلاعات محرمانه استفاده نکنید.
چرا Base64 من رمزگشایی نمی‌شود؟
علت‌های رایج: کاراکترهای خارج از الفبا (اغلب یک نقل‌قول یا شکست خط اضافه هنگام کپی)، رشتهٔ ناقص، یا ترکیب با متنی که Base64 نیست. پیام خطا موقعیت اولین مشکل را نشان می‌دهد.
خروجی رمزگشایی‌شده نامفهوم است. چرا؟
احتمالاً داده باینری است، مثلاً یک تصویر، فایل فشرده یا بایت‌های رمزنگاری‌شده، نه متن. ابزار این را تشخیص می‌دهد، هگزدامپ نشان می‌دهد و امکان دانلود بایت‌های خام را فراهم می‌کند.
آیا به پدینگ = نیاز دارم؟
بسیاری از رمزگشاها، از جمله همین ابزار، بدون آن هم کار می‌کنند، چون طول رشته نشان می‌دهد چند بایت کم است. برخی رمزگشاهای سخت‌گیر آن را الزامی می‌دانند. JWTها و بیشتر کاربردهای base64url پدینگ را حذف می‌کنند.
آیا فایل‌های من آپلود می‌شوند؟
خیر. فایل‌ها به‌صورت محلی با File API مرورگر خوانده و کدگذاری می‌شوند. هیچ چیزی به سرور ارسال نمی‌شود.

ابزارهای مرتبط