tigtools

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

متن یا هر فایلی را به Base64 تبدیل کنید یا Base64 را دوباره به متن خوانا یا فایل اصلی رمزگشایی کنید. نویسه‌های اعراب‌دار، ایموجی و داده‌های باینری به‌درستی پردازش می‌شوند.

در مرورگر شما اجرا می‌شود بدون ثبت‌نام

نوع ورودی
جهت

نحوه استفاده

  1. در بالای صفحه «متن» یا «فایل» را انتخاب کنید.
  2. برای متن، جهت را انتخاب کنید و تایپ یا جای‌گذاری کنید. نتیجه هم‌زمان با تایپ شما به‌روز می‌شود.
  3. برای کدگذاری فایل، آن را انتخاب کنید یا رها کنید (تا ۱۰ مگابایت). اگر می‌خواهید آن را در HTML یا CSS جاسازی کنید، گزینه «خروجی به‌صورت data URL» را فعال کنید.
  4. برای تبدیل Base64 به فایل، گزینه Base64 → متن را انتخاب کنید، داده را جای‌گذاری کنید و روی «دانلود به‌صورت فایل» کلیک کنید.

نحوه کار

Base64 داده‌های باینری را با ۶۴ نویسهٔ قابل چاپ ASCII نمایش می‌دهد: A–Z، a–z، 0–9، + و /. هر ۳ بایت به ۴ نویسه تبدیل می‌شود، بنابراین شکل کدگذاری‌شده حدود ۳۳٪ بزرگ‌تر از نسخهٔ اصلی است. اگر طول ورودی مضرب ۳ نباشد، خروجی با یک یا دو علامت = پر می‌شود.

Base64 یک کدگذاری است، نه رمزنگاری. هر کسی می‌تواند بدون کلید آن را رمزگشایی کند؛ بنابراین هرگز نباید برای پنهان‌کردن گذرواژه‌ها یا داده‌های شخصی استفاده شود. کاربرد آن این است که داده‌های باینری بتوانند از طریق سیستم‌هایی که برای متن ساخته شده‌اند منتقل شوند؛ مانند ایمیل (MIME)، JSON، XML، سرصفحه‌های HTTP و data URL.

متن ابتدا به بایت‌های UTF-8 تبدیل می‌شود تا نویسه‌های خارج از ASCII به‌درستی کدگذاری شوند. این موضوع اهمیت دارد، زیرا تابع داخلی مرورگر به نام btoa روی نویسه‌هایی مانند é یا ایموجی خطا می‌دهد. هنگام رمزگشایی، ابزار بررسی می‌کند که نتیجه UTF-8 معتبر است؛ اگر نباشد، داده باینری است و به‌جای متن نامفهوم به‌صورت هگزادسیمال نمایش داده می‌شود.

گونهٔ امن برای URL (base64url، RFC 4648 بخش ۵) علامت + را با - و / را با _ جایگزین می‌کند و معمولاً نویسه‌های پرکنندهٔ = را حذف می‌کند، زیرا این نویسه‌ها در URL معانی خاصی دارند. این گونه در JSON Web Tokenها و بسیاری از APIهای وب استفاده می‌شود. شکستن خط MIME (RFC 2045) خروجی را به خط‌هایی حداکثر ۷۶ نویسه تقسیم می‌کند که برخی سیستم‌های ایمیل و فایل‌های گواهی PEM به آن نیاز دارند.

رمزگشایی در جاهایی که امن باشد انعطاف‌پذیر است: فاصله‌های خالی و شکست خط نادیده گرفته می‌شوند، نویسه‌های پرکنندهٔ جاافتاده اضافه می‌شود و هر دو مجموعه نویسه (استاندارد و URL-safe) پذیرفته می‌شود. هر چیز دیگری، مانند نویسهٔ اضافی یا نویسهٔ پرکننده در وسط، همراه با موقعیت آن گزارش می‌شود و بی‌صدا نادیده گرفته نمی‌شود.

نمونه‌ها

کدگذاری متن با نویسه‌های اعراب‌دار و ایموجی

«Grüße 👋» به R3LDvMOfZSDwn5GL تبدیل می‌شود. نویسه‌های ü و ß هرکدام ۲ بایت UTF-8 اشغال می‌کنند و ایموجی ۴ بایت؛ بنابراین ۷ نویسه به ۱۲ بایت و ۱۶ نویسهٔ Base64 تبدیل می‌شود.

ساخت سرصفحهٔ HTTP Basic Authorization

برای کاربر «alice» و گذرواژهٔ «s3cret»، رشتهٔ alice:s3cret را کدگذاری کنید تا YWxpY2U6czNjcmV0 به دست آید و سرصفحهٔ Authorization: Basic YWxpY2U6czNjcmV0 را ارسال کنید. از آنجا که Base64 رمزنگاری نیست، احراز هویت Basic فقط باید روی HTTPS استفاده شود.

بازیابی فایل از یک data URL

رشته‌ای مانند data:image/png;base64,iVBORw0KGgo… را در Base64 → متن قرار دهید. ابزار پیشوند را حذف می‌کند، دادهٔ PNG را تشخیص می‌دهد، چون متن نیست نمای هگزادسیمال را نشان می‌دهد و «دانلود به‌عنوان فایل» فایل decoded.png را ذخیره می‌کند.

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

آیا Base64 نوعی رمزنگاری است؟

خیر. Base64 یک کدگذاری بازگشت‌پذیر است و کلید یا رمزی ندارد. هر کسی که رشتهٔ Base64 را ببیند می‌تواند بیدرنگ آن را رمزگشایی کند؛ بنابراین هرگز برای محافظت از گذرواژه‌ها، توکن‌ها یا اطلاعات شخصی به آن اتکا نکنید.

چرا متن رمزگشایی‌شده من در ابزارهای دیگر نویسه‌های عجیب نشان می‌دهد؟

معمولاً به این دلیل که متن به‌صورت UTF-8 کدگذاری شده اما به‌صورت Latin-1 رمزگشایی شده است (یا برعکس). این ابزار همیشه از UTF-8 استفاده می‌کند و وقتی بایت‌های رمزگشایی‌شده متن UTF-8 معتبری نباشند به شما اطلاع می‌دهد.

تفاوت Base64 و base64url چیست؟

هر دو از روش یکسانی استفاده می‌کنند، اما base64url کاراکتر + را با - و / را با _ جایگزین می‌کند و معمولاً padding (علامت =) را حذف می‌کند تا نتیجه بدون نیاز به escape بیشتر در URLها و نام فایل‌ها قابل استفاده باشد. این رمزگشا هر دو شکل را می‌پذیرد.

چرا خروجی Base64 از فایل بزرگ‌تر است؟

Base64 هر ۳ بایت را به ۴ نویسه تبدیل می‌کند که حدود ۳۳٪ حجم را افزایش می‌دهد. شکستن خطوط نیز به‌ازای هر ۷۶ نویسه ۲ نویسه دیگر (CRLF) اضافه می‌کند. برای تصاویر بزرگ معمولاً بهتر است فایل به‌صورت عادی ارائه شود تا اینکه به‌صورت data URL جاسازی شود.

آیا محدودیت حجم وجود دارد؟

حجم فایل‌ها می‌تواند تا ۱۰ مگابایت باشد. متن جای‌گذاری‌شده محدودیت ثابتی ندارد، اما ورودی‌های بسیار بزرگ (چند ده مگابایت) می‌توانند صفحه را کند کنند، به‌ویژه روی گوشی‌ها.

حریم خصوصی

کدگذاری و رمزگشایی در مرورگر شما انجام می‌شود. متن‌ها و فایل‌ها هرگز بارگذاری یا ذخیره نمی‌شوند و محتوای آن‌ها در تحلیل‌ها گنجانده نمی‌شود. دانلودها به‌صورت محلی روی دستگاه شما ساخته می‌شوند.