رمزگذاری/رمزگشایی Base64 (متن)
Input
Output
چرا از این رمزگذار Base64 استفاده کنیم
- رمزگذاری فوری Base64 برای متن، JSON و دادههای باینری کوچک
- پشتیبانی از فایلها (متن، تصاویر، باینری) برای تبدیل سریع به رشتههای Base64
- گزینه ایمن برای URL برای JWTs، پارامترهای کوئری و محیطهای وب ایمن
- گزینه پیچیدن خطوط برای شبیهسازی ابزارهای CLI یا قالبهای ایمیل / PEM
- کپی با یک کلیک برای استفاده آسان در هدرها، پیکربندیها و کد
- رابط کاربری واکنشگرا که به خوبی در دسکتاپ و موبایل کار میکند
- رمزگذاری در مرورگر شما انجام میشود — دادههای شما به سرور راه دور ارسال نمیشود
🔧 نحوه عملکرد رمزگذاری Base64 (گام به گام) for base64-encoder
ورودی را ارائه دهید
متن، JSON یا قطعه کد خود را در ناحیه ورودی جایگذاری کنید، یا یک فایل را رها کنید تا بایتهای خام آن به Base64 تبدیل شود. ابزار بایتها را دقیقاً همانطور که هستند میخواند.
تبدیل به بایت
رمزگذار کاراکترها (مانند متن UTF-8) یا محتوای فایل را به بایت تبدیل میکند. هر بایت یک مقدار 8 بیتی بین 0 تا 255 است.
گروهبندی مجدد بیتها به شاخصهای Base64
هر 3 بایت (3 × 8 = 24 بیت) به 4 گروه 6 بیتی (4 × 6 = 24) گروهبندی مجدد میشوند. هر گروه 6 بیتی یک شاخص در الفبای Base64 است.
نگاشت به کاراکترهای Base64 و پر کردن
هر شاخص 6 بیتی به یک کاراکتر Base64 تبدیل میشود. اگر ورودی بر 3 بایت بخشپذیر نباشد، '=' برای پر کردن اضافه میشود تا طول خروجی همیشه مضربی از 4 کاراکتر باشد.
مشخصات فنی
مجموعه کاراکترها (RFC 4648)
این رمزگذار از الفبای استاندارد Base64 تعریف شده توسط RFC 4648 استفاده میکند.
| محدوده / نوع | کاراکترها | یادداشتها |
|---|---|---|
| شاخصهای 0–25 | A–Z | حروف بزرگ |
| شاخصهای 26–51 | a–z | حروف کوچک |
| شاخصهای ۵۲–۶۱ | ۰–۹ | ارقام |
| شاخصهای ۶۲–۶۳ | + / | نمادهای استاندارد Base64 |
| پرکننده | = | اطمینان میدهد طول خروجی مضربی از ۴ باشد |
اندازه و سربار
Base64 اندازه را برای ایمنی در کانالهای متنی فدا میکند. انتظار حدود یکسوم داده بیشتر پس از رمزگذاری داشته باشید.
| اندازه اصلی | اندازه Base64 (تقریبی) | سربار |
|---|---|---|
| ۳ بایت | ۴ کاراکتر | ~۳۳٪ بزرگتر |
| ۱ کیلوبایت | ≈ ۱.۳۷ کیلوبایت | ~۳۷٪ شامل پرکننده و خطوط جدید |
| ۱ مگابایت | ≈ ۱.۳۷ مگابایت | نسبت یکسان در مقیاسهای بزرگتر |
عملکرد و محدودیتهای عملی
رمزگذاری خود سریع است، اما بافرهای بزرگ میتوانند بر حافظه مرورگر و پاسخگویی تأثیر بگذارند.
| اندازه محموله | تجربه کاربری | توصیه |
|---|---|---|
| چند کیلوبایت | فوری | ایدهآل برای هدرها، قطعات پیکربندی و دادههای آزمایشی |
| ۱۰۰ کیلوبایت – ۱ مگابایت | بسیار پاسخگو | معمول برای محمولههای API و فیکسچرها |
| ۱–۵ مگابایت | عموماً در سختافزارهای مدرن خوب است | اگر اغلب این کار را انجام میدهید، ابزارهای CLI را در نظر بگیرید |
| > ۵–۱۰ مگابایت | ممکن است در مرورگر کند یا حافظهبر احساس شود | از رمزگذارهای جریانی یا ابزارهای خط فرمان استفاده کنید |
رمزگذاری Base64 در خط فرمان
برای فایلهای بزرگ، اتوماسیون یا گردش کارهای CI، از ابزارهای بومی Base64 در پلتفرم خود استفاده کنید.
لینوکس / 🍏 مک
رمزگذاری یک رشته
echo -n 'text' | base64رشته 'text' را به صورت Base64 رمزگذاری میکند بدون افزودن خط جدید.
رمزگذاری یک فایل
base64 input.bin > output.b64دادههای باینری را از input.bin خوانده و متن Base64 را در output.b64 مینویسد.
ویندوز / PowerShell
رمزگذاری رشته با PowerShell
[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("text"))بایتهای UTF-8 برای 'text' را به یک رشته Base64 تبدیل میکند.
رمزگذاری فایل با certutil (CMD)
certutil -encode input.bin output.b64از ابزار داخلی ویندوز برای ایجاد فایل رمزگذاری شده با Base64 استفاده میکند.
کاربردهای عملی
توسعه وب و Data URIs
داراییها و منابع کوچک را مستقیماً در HTML، CSS یا JavaScript قرار دهید.
- تولید data:image/...;base64,... برای لوگوها، آیکونها و تصاویر کوچک.
- قرار دادن فونتها یا محتوای SVG در قوانین CSS.
- ذخیره محمولههای کوچک در LocalStorage به صورت رشتههای Base64.
<img src="data:image/png;base64,iVBORw0KGgo...">document.styleSheets[0].insertRule("@font-face{src:url('data:font/woff2;base64,...')}" );توسعه API و هدرها
انتقال ایمن اعتبارنامهها و محمولههای کوچک از طریق کانالهای متنی.
- ساخت هدرهای Authorization: Basic از جفتهای نام کاربری:رمز عبور.
- رمزگذاری محمولههای JSON به Base64 برای هدرهای سفارشی یا پارامترهای پرسوجو.
- پیچیدن بستههای باینری در JSON به صورت رشتههای Base64.
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=fetch(url, { headers: { 'X-Payload': btoa(JSON.stringify(data)) } });تستها، فیکسچرها و دیباگ
ایجاد فیکسچرهای پایدار و متنی برای تستها و جلسات دیباگ.
- رمزگذاری فیکسچرهای باینری (تصاویر، PDFها) و قرار دادن آنها در کد تست.
- ذخیره نمونه محمولهها به صورت رشتههای Base64 به جای کامیت فایلهای باینری.
- نمونههای محموله برای سرویسهایی که فیلدهای کدگذاری شده با Base64 را انتظار دارند.
// مثال: تست Jest با استفاده از fixture پایه64
const payload = Buffer.from(base64Fixture, 'base64');
expect(processPayload(payload)).toBeTruthy();
❓ Frequently Asked Questions
❓چرا Base64 از padding '=' استفاده میکند؟
Base64 ورودی را به بلوکهای 3 بایتی (24 بیتی) گروهبندی کرده و 4 کاراکتر (4 × 6 بیت) خروجی میدهد. وقتی طول ورودی بر 3 بخشپذیر نباشد، کاراکترهای padding '=' اضافه میشوند تا نشان دهند بلوک آخر کوتاهتر است. این padding بخشی از فرمت کدگذاری است، نه داده اصلی.🔗چگونه Base64 ایمن برای URL تولید کنم؟
Base64 ایمن برای URL، '+' را با '-' و '/' را با '_' جایگزین میکند و اغلب padding انتهایی '=' را حذف میکند. بسیاری از کتابخانهها حالت ایمن برای URL دارند. اگر نیاز به انجام دستی دارید، از Base64 استاندارد شروع کنید، سپس این جایگزینیها را اعمال کرده و '=' را برای مورد استفاده خود حذف کنید.🔒آیا کدگذاری Base64 یک اقدام امنیتی است؟
Base64 یک **کدگذاری** برگشتپذیر است که دادههای باینری را برای انتقال به صورت متن ایمن میکند (مثلاً در JSON، HTML یا هدرها). به خودی خود هیچ محرمانگی یا یکپارچگی ارائه نمیدهد. همیشه برای امنیت از HTTPS/TLS و رمزنگاری مناسب (مانند AES یا طرحهای کلید عمومی) استفاده کنید.📏حداکثر اندازه فایلی که میتوانم اینجا کدگذاری کنم چقدر است؟
Pro Tips
برای داراییهای بسیار کوچک (< 10 کیلوبایت)، درونخطی کردن به عنوان دادههای URI پایه64 میتواند درخواستهای HTTP را کاهش دهد، اما از انجام این کار برای تصاویر یا فونتهای بزرگ خودداری کنید.
در محیط تولید فقط محمولههای Base64 کوتاه شده (یا هشها) را لاگ کنید تا از افشای محتوای حساس در لاگها جلوگیری شود.
اگر بکاند شما Base64 انتظار دارد، ورودی را در سمت سرور اعتبارسنجی و نرمال کنید تا محمولههای نادرست یا غیرمنطقی بزرگ رد شوند.
Additional Resources
Other Tools
- زیباکننده CSS
- زیباکننده HTML
- زیباکننده JavaScript
- زیباکننده PHP
- انتخابگر رنگ
- استخراجکننده اسپرایت
- دیکودر Base64
- فرمتدهنده C#
- فرمتدهنده CSV
- Dockerfile Formatter
- فرمتدهنده Elm
- فرمتدهنده ENV
- فرمتدهنده Go
- فرمتدهنده GraphQL
- فرمتدهنده HCL
- فرمتدهنده INI
- فرمتدهنده JSON
- فرمتدهنده LaTeX
- فرمتدهنده Markdown
- فرمتدهنده Objective-C
- Php Formatter
- فرمتدهنده Proto
- فرمتدهنده Python
- فرمتدهنده Ruby
- فرمتدهنده Rust
- فرمتدهنده Scala
- فرمتدهنده اسکریپت شل
- فرمتدهنده SQL
- قالببندی SVG
- قالببندی Swift
- قالببندی TOML
- Typescript Formatter
- قالببندی XML
- قالببندی YAML
- قالببندی Yarn
- کوچککننده CSS
- Html Minifier
- Javascript Minifier
- کوچککننده JSON
- کوچککننده XML
- نمایشگر هدرهای HTTP
- PDF به متن
- تستکننده Regex
- بررسیکننده رتبه SERP
- جستجوی Whois