Base64 یک روش رمزگذاری باینری به متن است که داده باینری را با مجموعهای از ۶۴ کاراکتر قابل چاپ ASCII نمایش میدهد. این روش طراحی شده تا داده باینری را از طریق سیستمهایی که فقط متن پردازش میکنند — مانند ایمیل (MIME)، هدرهای HTTP، و XML — بهطور ایمن منتقل کند. نام «Base64» از ۶۴ کاراکتر استفادهشده در جدول رمزگذاری گرفته شده است.
رمزگذاری با گرفتن سه بایت ورودی (۲۴ بیت) و تقسیم آنها به چهار گروه ۶ بیتی کار میکند. هر مقدار ۶ بیتی به یک کاراکتر در جدول Base64 نگاشت میشود. اگر طول ورودی مضرب سه نباشد، کاراکترهای padding یعنی = اضافه میشوند تا تعداد کاراکترهای خروجی مضرب چهار شود. نتیجه رشتهای است که تقریباً ۳۳ درصد بزرگتر از داده اصلی است اما برای انتقال بهصورت متن خالص ایمن میباشد.
چرا از این ابزار استفاده کنیم؟
این رمزگذار متن Unicode را بهدرستی پردازش میکند، هم نوع استاندارد و هم URL-safe را پشتیبانی میکند، و کاملاً در مرورگر شما رمزگذاری میکند — داده شما هرگز دستگاه شما را ترک نمیکند.
⚡
رمزگذاری فوری
نتایج همزمان با تایپ شما ظاهر میشوند. نیازی به کلیک روی دکمهای نیست، نیازی به انتظار برای پاسخ سرور نیست.
🔗
کلید URL-safe
با یک کلیک بین رمزگذاری استاندارد (+/) و URL-safe (-_) جابجا شوید. Padding بهطور خودکار برای نوع URL-safe حذف میشود.
🔒
کاملاً سمت کاربر
تمام رمزگذاری بهصورت محلی در مرورگر شما با استفاده از API بومی btoa و TextEncoder انجام میشود. هیچ چیزی به هیچ سروری ارسال نمیشود.
🎛️
پشتیبانی از Unicode
Unicode کامل شامل ایموجی، کاراکترهای CJK، و هر متن UTF-8 را با استفاده از encodeURIComponent قبل از رمزگذاری بهدرستی پردازش میکند.
نحوه استفاده از این رمزگذار Base64 آنلاین
بدون حساب کاربری، بدون نصب، بدون آپلود — متن را جایگذاری کنید و خروجی رمزگذاریشده فوراً ظاهر میشود.
1
متن خود را جایگذاری یا تایپ کنید
روی فیلد ورودی کلیک کرده و هر متنی را جایگذاری کنید — رشتههای ساده، بارهای JSON، کلیدهای API، آدرسهای ایمیل، یا هر محتوای UTF-8. رمزگذاری همزمان با تایپ شما بهروزرسانی میشود.
2
نوع مورد نظر را انتخاب کنید
استاندارد (RFC 4648) را برای MIME، HTTP Basic Auth، و استفاده عمومی انتخاب کنید. URL-safe را برای توکنهای JWT، پارامترهای query string، نام فایلها، و هر جایی که + یا / تجزیه URL را خراب میکنند انتخاب کنید.
3
خروجی را کپی کنید
روی Copy کلیک کنید تا رشته Base64 با یک کلیک به کلیپبورد شما ارسال شود. خروجی آماده است تا مستقیماً در کد، فایل پیکربندی، یا درخواست API شما جایگذاری شود.
4
در برنامه خود استفاده کنید
رشته رمزگذاریشده را هر جا که نیاز است جایگذاری کنید — هدرهای Authorization، data URIها، فیلدهای JSON، متغیرهای محیطی، یا secretهای Kubernetes. برای خروجی URL-safe، padding از قبل حذف شده است.
جدول Base64
Base64 از ۶۴ کاراکتر استفاده میکند: حروف بزرگ A–Z (مقادیر ۰–۲۵)، حروف کوچک a–z (۲۶–۵۱)، اعداد 0–9 (۵۲–۶۱)، و دو کاراکتر ویژه برای مقادیر ۶۲ و ۶۳. نوع استاندارد RFC 4648 از + و / استفاده میکند؛ نوع URL-safe آنها را با - و _ جایگزین میکند تا از تداخل در URLها و نام فایلها جلوگیری شود.
A–Z
0–25
ABCDEFGHIJKLMNOPQRSTUVWXYZ
a–z
26–51
abcdefghijklmnopqrstuvwxyz
0–9
52–61
0123456789
+, /
62–63
استاندارد RFC 4648 — در URLها و نام فایلها استفاده نکنید
-, _
62–63
نوع URL-safe (RFC 4648 §5) — در URLها و نام فایلها ایمن است
Base64 استاندارد در مقابل URL-safe
جدول Base64 استاندارد از + و / استفاده میکند که در URLها و مسیرهای فایل کاراکترهای ویژه هستند. نوع URL-safe اینها را با - و _ جایگزین میکند و معمولاً کاراکترهای padding = را حذف میکند. برای توکنهای JWT، داده در query stringها، نام فایلها، و هر جایی که + یا / ممکن است اشتباه تفسیر شوند از رمزگذاری URL-safe استفاده کنید.
ورودی
استاندارد
URL-safe
Man
TWFu
TWFu
Hello
SGVsbG8=
SGVsbG8
A
QQ==
QQ
1+1=2
MSsxPTI=
MSsxPTI
موارد استفاده رایج
پیوستهای ایمیل (MIME)
SMTP برای متن ASCII 7 بیتی طراحی شده است. رمزگذاری Base64 توسط استاندارد MIME استفاده میشود تا پیوستهای باینری (تصاویر، PDFها، فایلهای اجرایی) را بهطور ایمن در پیامهای ایمیل جاسازی کند.
Data URI
تصاویر، فونتها، و سایر داراییها را مستقیماً در HTML یا CSS با استفاده از data URI جاسازی کنید: data:image/png;base64,... — درخواستهای HTTP اضافی برای منابع کوچک را حذف میکند.
بارهای API
REST APIها اغلب نیاز دارند فیلدهای باینری (آپلود فایل، کلیدهای رمزنگاری، گواهینامهها) هنگام جاسازی در JSON با Base64 رمزگذاری شوند، زیرا JSON نوع باینری ندارد.
فایلهای پیکربندی
Secretهای Kubernetes، متغیرهای محیطی، و پیکربندیهای CI/CD معمولاً secretهای باینری و گواهینامهها را بهصورت رشتههای Base64 ذخیره میکنند تا از مشکلات escaping جلوگیری شود.
HTTP Basic Auth
هدر HTTP Authorization: Basic اعتبارنامهها را بهصورت Base64(username:password) رمزگذاری میکند. این رمزنگاری نیست — فقط رمزگذاری برای انتقال در هدرها فراهم میکند.
توکنهای JWT
JSON Web Tokenها از Base64 URL-safe (base64url) برای رمزگذاری بخشهای header و payload استفاده میکنند تا توکن در URLها و هدرهای HTTP بدون escaping قابل استفاده باشد.
وقتی نباید از Base64 استفاده کرد
Base64 یک رمزگذاری انتقالی است، نه یک مکانیزم امنیتی. اینها رایجترین سوء استفادههایی هستند که مشکلات واقعی در محیط عملیاتی ایجاد میکنند:
✕
برای امنیت یا رمزنگاری مناسب نیست
Base64 بهراحتی برگشتپذیر است — برای رمزگشایی آن نیازی به کلید یا رمز عبور نیست. هر کسی که یک رشته Base64 ببیند میتواند در چند ثانیه آن را رمزگشایی کند. هرگز از Base64 بهعنوان جایگزین رمزنگاری، hashing، یا کنترل دسترسی استفاده نکنید.
✕
برای فشردهسازی مناسب نیست
Base64 حجم خروجی را تقریباً ۳۳ درصد افزایش میدهد. عکس فشردهسازی است. از آن برای کاهش حجم بار استفاده نکنید — به جای آن از gzip، Brotli، یا zstd استفاده کنید.
✕
برای ذخیره فایلهای باینری مناسب نیست
ذخیره فایلهای باینری بزرگ بهصورت Base64 در پایگاهداده یا JSON APIها فضای ذخیرهسازی و حافظه قابل توجهی هدر میدهد. از object storage (S3، R2، Cloudflare) استفاده کرده و باینری را مستقیم سرو کنید.
نمونه کد
نحوه رمزگذاری Base64 رشتهها در زبانها و محیطهای محبوب:
JavaScript (browser)
// Standard Base64
const encoded = btoa(unescape(encodeURIComponent(text)))
// URL-safe Base64 (no padding)
const urlSafe = btoa(unescape(encodeURIComponent(text)))
.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '')
چندین رمزگذار Base64 آنلاین وجود دارد. تمایزات کلیدی برای استفاده روزانه توسعهدهندگان حریم خصوصی، صحت، و پشتیبانی از انواع مختلف است.
کاملاً خصوصی — بدون سرور
این رمزگذار کاملاً در مرورگر شما با استفاده از API بومی btoa و TextEncoder اجرا میشود. متن شما هرگز به هیچ سروری ارسال نمیشود — برای کلیدهای API، توکنها، و اسرار ایمن است.
رمزگذاری صحیح Unicode
بسیاری از ابزارهای Base64 آنلاین ورودیهای غیر ASCII را بیصدا خراب میکنند. این ابزار Unicode کامل — ایموجی، CJK، عربی، و تمام متن UTF-8 — را با رمزگذاری به بایتهای UTF-8 قبل از پردازش بهدرستی مدیریت میکند.
هر دو نوع در یک جا
بیشتر ابزارها فقط Base64 استاندارد ارائه میدهند. این رمزگذار هم نوع استاندارد (+/) و هم URL-safe (-_) را با مدیریت خودکار padding فراهم میکند — نیازی به جایگزینی دستی کاراکترها نیست.
سوالات متداول
آیا Base64 همان رمزنگاری است؟
خیر. Base64 یک روش رمزگذاری است، نه رمزنگاری. بهراحتی توسط هر کسی قابل برگشت است — برای رمزگشایی آن نیازی به کلید یا رمز عبور نیست. هرگز از Base64 برای محافظت از داده حساس استفاده نکنید. برای این منظور از رمزنگاری مناسب (AES، RSA) استفاده کنید.
چرا خروجی Base64 با = یا == پایان مییابد؟
Base64 در گروههای ۳ بایتی (۲۴ بیتی) کار میکند و ۴ کاراکتر Base64 تولید میکند. اگر طول ورودی مضرب ۳ نباشد، کاراکترهای padding یعنی = اضافه میشوند تا طول خروجی مضرب ۴ شود. یک = به معنای ۲ بایت در گروه آخر است؛ دو = به معنای ۱ بایت.
Base64 URL-safe چیست؟
Base64 URL-safe (تعریفشده در RFC 4648 §5) علامت + را با - و / را با _ جایگزین میکند تا رشته رمزگذاریشده بتواند در URLها، نام فایلها، و هدرهای HTTP بدون percent-encoding استفاده شود. همچنین معمولاً کاراکترهای padding = را حذف میکند.
رمزگذاری Base64 چقدر حجم فایل را افزایش میدهد؟
رمزگذاری Base64 حجم را تقریباً ۳۳ درصد افزایش میدهد. هر ۳ بایت ورودی به ۴ کاراکتر خروجی تبدیل میشود. برای یک فایل ۱ مگابایتی، خروجی Base64 تقریباً ۱.۳۷ مگابایت خواهد بود. این سربار دلیلی است که Base64 فقط در موارد ضروری استفاده میشود (مثلاً جاسازی باینری در پروتکلهای متنی).
آیا میتوانم فایلهای باینری را با این ابزار رمزگذاری کنم؟
این ابزار رشتههای متنی را رمزگذاری میکند (که سپس بهعنوان بایتهای UTF-8 پردازش میشوند). برای رمزگذاری فایلهای باینری دلخواه (تصاویر، PDFها، فایلهای اجرایی)، از یک کتابخانه زبان برنامهنویسی یا ابزار CLI استفاده کنید که بایتهای خام را میخواند و آنها را به رمزگذار Base64 میدهد.
تفاوت بین btoa() و Buffer.from().toString('base64') چیست؟
btoa() یک تابع توکار مرورگر است که روی رشتههای Latin-1 کار میکند؛ برای کاراکترهای غیر ASCII خطا میدهد مگر اینکه ابتدا به بایتهای UTF-8 رمزگذاری کنید (با استفاده از encodeURIComponent). Buffer.from(text).toString('base64') در Node.js رشتههای UTF-8 را مستقیماً پردازش میکند و رویکرد ترجیحی در سمت سرور است.
آیا Base64 با فایلهای باینری کار میکند؟
این ابزار رشتههای متنی را بهعنوان بایتهای UTF-8 در Base64 رمزگذاری میکند. برای فایلهای باینری (تصاویر، PDFها، فایلهای اجرایی)، از یک ابزار CLI یا کتابخانه زبان برنامهنویسی استفاده کنید که بایتهای خام را میخواند. در مرورگر، از FileReader.readAsDataURL() استفاده کنید که یک data URI با محتوای باینری رمزگذاریشده با Base64 برمیگرداند.
آیا برای رمزگذاری محدودیت اندازه وجود دارد؟
این ابزار کاملاً در مرورگر اجرا میشود و محدودیت سمت سرور ندارد. محدودیتهای عملی به حافظه مرورگر شما بستگی دارد. برای ورودیهای بسیار بزرگ (بیش از چند مگابایت)، یک ابزار CLI مانند base64 (Linux/macOS) یا certutil -encode (Windows) کارآمدتر است.