کدگذار و کدگشای Base64
Base64 را برای متن، فایل و عکس کدگذاری و کدگشایی کنید — با Data URI، در مرورگر شما.
کدگذاری و رمزگشایی Base64 — تبدیل متن به Base64 بهصورت آنلاین
Base64 هر دنبالهای از بایتها را به الفبای کوتاه و امن ۶۴ کاراکتری تبدیل میکند؛ الفبایی که از هدر ایمیل، رشتههای JSON، آدرسهای اینترنتی، ویژگیهای XML و هر کپی و پیست سالم عبور میکند. این ابزار رایگان در هر دو جهت و در یک لحظه کار میکند: متن را بچسبانید و کدگذاری بزنید، یک رشته Base64 را بچسبانید و رمزگشایی بزنید، یا به زبانه فایل بروید تا یک تصویر، PDF یا هر فایل دیگری را به Base64 تبدیل کنید.
نه حسابی باید ساخته شود، نه در صفی منتظر میمانید و نه چیزی آپلود میشود: فایلی که انتخاب میکنید را خودِ مرورگر میخواند. تبدیل با JavaScript بومی انجام میشود؛ برای دادههای طولانی سریع است و برای دادههای داخلی سازمان بهاندازه کافی خصوصی.
کدگذاری Base64 دقیقاً چیست
Base64 روشی برای نمایش داده باینری به شکل متن است. داده را سه بایت سه بایت میخواند، آن ۲۴ بیت را به چهار گروه ۶ بیتی تقسیم میکند و هر گروه را به یکی از کاراکترهای مجموعه A-Z a-z 0-9 + / نگاشت میدهد. اگر طول ورودی بر سه بخشپذیر نباشد، یک یا دو کاراکتر = بهعنوان پرکننده اضافه میشود. نتیجه حدود ۳۳ درصد بزرگتر از داده اصلی است، اما هیچ کاراکتر کنترلی و هیچ چیزی که پروتکلهای متنی را خراب کند در آن وجود ندارد.
روش کدگذاری و رمزگشایی Base64 آنلاین
- برای متن از زبانه متن و برای کدگذاری یک فایل از زبانه فایل استفاده کنید.
- متن خود را بچسبانید: متن ساده، JSON، تکهای از XML یا یک رشته Base64 موجود.
- برای تبدیل متن خوانا به Base64 روی کدگذاری بزنید، یا برای برگرداندن یک رشته Base64 به محتوای اصلیاش روی رمزگشایی.
- در زبانه فایل فایل را روی کادر بارگذاری رها کنید تا Base64 بیدرنگ ظاهر شود؛ اگر مقدار آماده
data:میخواهید گزینه پیشوند Data URI را بزنید. - با کپی نتیجه را بردارید، با دانلود آن را بهصورت فایل ذخیره کنید یا با پاک کردن از نو شروع کنید.
روش تبدیل تصویر به Base64
به زبانه فایل بروید و تصویر PNG، JPG، SVG یا آیکونی را که میخواهید جاسازی کنید رها کنید. ابزار بایتها را بهصورت محلی میخواند و Base64 را بیدرنگ نشان میدهد، همراه با یک پیشنمایش تا مطمئن شوید تصویر درست را انتخاب کردهاید. گزینه پیشوند Data URI را بزنید تا مقدار کامل data:image/png;base64,... را بگیرید که مستقیم در قاعده background-image در CSS، تگ img یا یک فیلد JSON قرار میگیرد. مسیر برعکس هم کار میکند: یک data URI را در زبانه متن بچسبانید و رمزگشایی بزنید تا تصویر پیشنمایش شود و برای دانلود ارائه گردد، بهجای اینکه به کاراکترهای ناخوانا تبدیل شود. فایل تا ۱۰ مگابایت پشتیبانی میشود.
رمزگشایی Base64 به PDF
APIهایی که فاکتور، برچسب پستی یا گزارش برمیگردانند، اغلب PDF را به شکل یک رشته بلند Base64 میفرستند که معمولاً با JVBERi0 شروع میشود؛ یعنی همان Base64 عبارت %PDF-. آن را در زبانه متن بچسبانید، با پیشوند data:application/pdf;base64, یا بدون آن، و روی رمزگشایی بزنید. ابزار از روی بایتهای اول تشخیص میدهد که PDF است، آن را درست زیر خروجی در نمایشگر PDF خود مرورگر نشان میدهد و با دانلود امکان ذخیره آن به نام decoded.pdf را میدهد؛ باز کردن PDF در زبانهٔ جدید هم آن را در یک پنجره کامل باز میکند. برای مسیر برعکس، یک PDF را روی زبانه فایل رها کنید تا Base64 آن را بگیرید. صفحه تبدیل Base64 به PDF رمزگشا را دقیقاً برای همین کار آماده باز میکند.
Base64 در عمل کجا استفاده میشود
- هدرهای احراز هویت HTTP Basic که
نامکاربری:رمزرا بهصورت یک رشته Base64 حمل میکنند. - Data URIها که یک آیکون کوچک یا فونت را مستقیم داخل CSS یا HTML جاسازی میکنند تا درخواست جداگانه لازم نباشد.
- پیوستهای ایمیل — استاندارد MIME از دهه ۱۹۹۰ بخشهای باینری را با Base64 کد میکند.
- توکنهای JWT که هدر و Payload آنها قطعههای Base64URL هستند.
- دادههای API که باید یک فایل، گواهی یا امضا را داخل یک فیلد JSON جابهجا کنند.
- Secretهای Kubernetes و بسیاری از سامانههای CI/CD که مقدارها را به شکل Base64 در YAML نگه میدارند.
Base64 کدگذاری است، نه رمزنگاری
این رایجترین سوءبرداشت درباره Base64 است و پیامد امنیتی واقعی دارد. Base64 نه کلید دارد و نه راز؛ هر کسی که رشته را ببیند با یک کلیک آن را باز میکند، دقیقاً همان کاری که شما همین حالا در این صفحه انجام میدهید. هرگز از Base64 برای پنهان کردن رمز عبور، کلید API یا اطلاعات شخصی استفاده نکنید. اگر به محرمانگی نیاز دارید ابتدا داده را رمزنگاری کنید و بعد متن رمزشده را برای انتقال با Base64 کد کنید. اگر میخواهید ثابت کنید داده تغییر نکرده است، از یک اثر انگشت در سازنده هش استفاده کنید.
تفاوت Base64 استاندارد با Base64URL
تفاوت فقط در دو کاراکتر است. Base64 استاندارد از + و / استفاده میکند که هر دو در آدرس اینترنتی و نام فایل معنای خاص دارند. Base64URL آنها را با - و _ جایگزین میکند و معمولاً کاراکتر پرکننده = را هم حذف میکند. JWTها، پارامترهای OAuth و بسیاری از APIهای امروزی از همین نسخه امن برای URL استفاده میکنند؛ پس اگر توکنی رمزگشایی نشد، پیش از آنکه داده را خراب فرض کنید همین جایگزینیها را بررسی کنید.
مشکلات رایج Base64 و راهحل آنها
- خطای کاراکتر نامعتبر: هنگام کپی یک علامت نقلقول یا متن اطراف وارد رشته شده است. فاصله و خط جدید خودکار حذف میشوند؛ فقط چیزی را پاک کنید که بخشی از خود رشته نیست.
- پرکننده نادرست: طول یک رشته Base64 معتبر بر چهار بخشپذیر است. کاراکترهای
=جاافتاده خودکار برگردانده میشوند و Base64URL با-و_هم تبدیل میشود. - پیشوند Data URI: میتوانید
data:image/png;base64,را سر جایش بگذارید؛ شناسایی و حذف میشود و برای نامگذاری فایل رمزگشاییشده به کار میرود. - بههمریختن حروف فارسی یا ایموجی: بایتهای اصلی UTF-8 نبودهاند. محتوای واقعاً باینری تشخیص داده میشود و بهجای نمایش کاراکترهای خراب، برای دانلود ارائه میشود.
- خروجی بزرگتر از انتظار: همان ۳۳ درصد افزایش حجم طبیعی است و نشان میدهد تبدیل واقعاً انجام شده است.
داده شما از دستگاهتان خارج نمیشود
هم کدگذاری و هم رمزگشایی کاملاً سمت کاربر اجرا میشوند و فایلی که انتخاب میکنید را مرورگر میخواند، نه اینکه جایی بفرستد. چیزی به سرور فرستاده نمیشود، در هیچ لاگی نوشته نمیشود و بعد از بستن تب باقی نمیماند. دقیقاً همین ویژگی برای دادههایی که معمولاً در مبدلها چسبانده میشوند اهمیت دارد: توکنهای نشست، مقدارهای پیکربندی و تیکتهای پشتیبانی حاوی اطلاعات مشتری.
کدگذاری و کدگشایی Base64 در خط فرمان یا در کد
| پلتفرم | کدگذاری | کدگشایی |
|---|---|---|
| Linux / macOS | base64 file.png یا echo -n 'text' | base64 | base64 -d encoded.txt (در macOS قدیمی -D) |
| PowerShell | [Convert]::ToBase64String([IO.File]::ReadAllBytes('file.png')) | [Convert]::FromBase64String($s) |
| Python | base64.b64encode(data) | base64.b64decode(s) |
| JavaScript | btoa(str) در مرورگر، Buffer.from(str).toString('base64') در Node | atob(s) / Buffer.from(s, 'base64') |
| PHP | base64_encode($data) | base64_decode($s) |
| Java | Base64.getEncoder().encodeToString(bytes) | Base64.getDecoder().decode(s) |
یک دام: btoa فقط Latin-1 میپذیرد، پس کدگذاری متن فارسی یا ایموجی در مرورگر اول به یک مرحله TextEncoder نیاز دارد. ابزار بالا UTF-8 را خودش مدیریت میکند و به همین دلیل معمولاً سریعتر از بهخاطر سپردن این ترفند است.
ابزارهای مرتبط
Base64 معمولاً تنها نمیآید. توکنهای ساختهشده از قطعههای Base64URL را با رمزگشای JWT بررسی کنید، مقدارهای Query String را با کدگذار URL آماده کنید، خروجی رمزگشاییشده را با فرمتکننده JSON مرتب کنید و اثر انگشت داده را با سازنده هش بسازید.