رمزگشایی Base64 فرایند معکوس رمزگذاری Base64 است: یک رشته ASCII رمزگذاریشده با Base64 را به داده باینری یا متن اصلی تبدیل میکند. هر ۴ کاراکتر Base64 به ۳ بایت از داده اصلی رمزگشایی میشوند. رمزگشا هر کاراکتر را در جدول Base64 جستجو میکند، گروههای ۶ بیتی اصلی را بازسازی میکند، و آنها را به بایتهای ۸ بیتی تبدیل میکند.
داده رمزگذاریشده با Base64 با استفاده از حروف بزرگ و کوچک، اعداد، و یا +/ (استاندارد) یا -_ (URL-safe) قابل تشخیص است و معمولاً با یک یا دو کاراکتر padding یعنی = پایان مییابد. این قالب بهطور گسترده در توکنهای JWT، پیوستهای ایمیل، data URI، پاسخهای API، و فایلهای پیکربندی استفاده میشود — هر جا که داده باینری یا ساختاریافته باید در متن خالص جاسازی شود.
چرا از این ابزار استفاده کنیم؟
این رمزگشا هم Base64 استاندارد و هم URL-safe را پشتیبانی میکند، padding گمشده را بهطور خودکار رفع میکند، و کاملاً در مرورگر شما رمزگشایی میکند — هیچ دادهای به سرور ارسال نمیشود.
⚡
رفع خودکار Padding
بسیاری از منابع Base64 را بدون کاراکترهای = انتهایی تولید میکنند. این ابزار بهطور خودکار padding گمشده را محاسبه و اضافه میکند تا از خطاهای InvalidCharacterError جلوگیری شود.
🛡️
پشتیبانی از هر دو نوع
بهطور خودکار هم Base64 استاندارد (+/) و هم URL-safe (-_) را تشخیص داده و پردازش میکند — توکنها را از هر منبعی بدون تبدیل دستی جایگذاری کنید.
🔒
کاملاً سمت کاربر
رمزگشایی بهصورت محلی در مرورگر شما با استفاده از API بومی atob انجام میشود. داده شما — که ممکن است حاوی اسرار یا محتوای حساس باشد — هرگز دستگاه شما را ترک نمیکند.
🌐
خروجی Unicode
متن رمزگذاریشده با UTF-8 را بهدرستی به Unicode کامل رمزگشایی میکند، از جمله کاراکترهای چندبایتی، ایموجی، و اسکریپتهای CJK.
نحوه استفاده از این رمزگشای Base64 آنلاین
بدون حساب کاربری، آپلود، یا پیکربندی — یک رشته Base64 جایگذاری کنید و خروجی رمزگشاییشده فوراً ظاهر میشود.
1
رشته Base64 خود را جایگذاری کنید
روی فیلد ورودی کلیک کرده و هر رشته رمزگذاریشده با Base64 را جایگذاری کنید — قالب استاندارد (+/) یا URL-safe (-_). رمزگشا رشتهها را با یا بدون padding (کاراکترهای =) میپذیرد و هر دو نوع را بهطور خودکار مدیریت میکند.
2
تشخیص و رفع خودکار
رمزگشا بهطور خودکار تشخیص میدهد که ورودی Base64 استاندارد است یا URL-safe و padding گمشده را قبل از رمزگشایی بازیابی میکند. هیچ تنظیم دستی لازم نیست.
3
بررسی خروجی
نتیجه رمزگشایی در سمت راست ظاهر میشود. اگر ورودی متن معتبر UTF-8 بود، رشته اصلی را خواهید دید. اگر داده باینری بود، خروجی بایتهای خام را بهصورت متن نشان میدهد — برخی کاراکترها ممکن است بهعنوان کاراکتر جایگزین ظاهر شوند.
4
کپی یا استفاده از نتیجه
روی Copy کلیک کنید تا متن رمزگشاییشده را به کلیپبورد خود بفرستید. از آن برای بررسی محتوای JWT، بازیابی مقادیر پیکربندی رمزگذاریشده، یا تأیید محتوای واقعی یک رشته Base64 استفاده کنید.
نحوه کارکرد رمزگشایی
هر کاراکتر Base64 به یک مقدار ۶ بیتی (۰–۶۳) نگاشت میشود. چهار کاراکتر متوالی ۲۴ بیت فراهم میکنند که به ۳ بایت از داده اصلی رمزگشایی میشوند. مثال زیر نشان میدهد که چگونه "TWFu" به "Man" رمزگشایی میشود:
مثال "Man" → TWFu → "Man"
کاراکتر
ایندکس
۶ بیت
T
19
010011
W
22
010110
F
5
000101
u
46
101110
چهار گروه ۶ بیتی (010011 010110 000101 101110) به هم متصل شده ۲۴ بیت میشوند، سپس به سه بایت ۸ بیتی تقسیم میشوند: 01001101 (M=77)، 01100001 (a=97)، 01101110 (n=110).
درک Padding
رمزگذاری Base64 بایتهای ورودی را در گروههای ۳ تایی دستهبندی میکند. وقتی طول ورودی بر ۳ بخشپذیر نباشد، کاراکترهای padding یعنی = اضافه میشوند تا گروه آخر کامل شود. هنگام رمزگشایی، این کاراکترهای = حذف میشوند و رمزگشا میداند که بیتهای صفر اضافی که در طول رمزگذاری افزوده شدهاند را نادیده بگیرد.
اصلی
رمزگذاریشده
قانون Padding
A
QQ==
1 byte → 2 padding chars
AB
QUI=
2 bytes → 1 padding char
ABC
QUJD
3 bytes → no padding needed
موارد استفاده رایج
بررسی محتوای JWT
توکنهای JWT از سه بخش رمزگذاریشده با Base64 URL-safe تشکیل شدهاند. رمزگشایی بخش دوم (payload) اطلاعات را آشکار میکند: شناسه کاربر، نقشها، زمان انقضا، و متادیتاهای دیگر — بدون نیاز به کلید امضا.
خواندن پاسخهای API
REST APIها اغلب داده باینری (محتوای فایل، تصاویر کوچک، مواد رمزنگاری) را بهصورت Base64 در پاسخهای JSON برمیگردانند. فیلد را رمزگشایی کنید تا داده اصلی را بخوانید.
رمزگشایی محتوای ایمیل
بدنه و پیوستهای ایمیل MIME با Base64 رمزگذاری میشوند. رمزگشایی آنها محتوای متنی اصلی را آشکار میکند یا به شما امکان میدهد پیوستهای باینری را بازسازی کنید.
استخراج Secretهای Kubernetes
Kubernetes مقادیر secret را بهصورت Base64 در مانیفستهای YAML ذخیره میکند. رمزگشایی آنها پسوردها، توکنها، و کلیدهای واقعی ذخیرهشده در cluster را آشکار میکند — مفید برای دیباگ و ممیزی.
دیباگ پیکربندی
متغیرهای محیطی و secretهای pipelineهای CI/CD اغلب برای ذخیرهسازی امن در فایلهای پیکربندی YAML یا JSON با Base64 رمزگذاری میشوند. آنها را رمزگشایی کنید تا مقادیر واقعی را در طول دیباگ تأیید کنید.
رمزگشایی Data URI
Data URIها داراییهای رمزگذاریشده با Base64 را مستقیماً در HTML/CSS جاسازی میکنند. بخش Base64 را رمزگشایی کنید تا تصویر، فونت، یا منبع جاسازیشده اصلی را استخراج کنید.
اشتباهات رایج
اینها شایعترین دلایل خطاهای رمزگشایی Base64 در عمل هستند:
✕
Padding گمشده
رشتههای Base64 باید طولی مضربی از ۴ داشته باشند. بسیاری از APIها و کتابخانههای JWT برای فشردگی، = انتهایی را حذف میکنند. padding را برگردانید: تعداد = گمشده (4 - length % 4) % 4 است.
✕
تبدیل نشدن کاراکترهای URL-safe
Base64 URL-safe به جای + و / از - و _ استفاده میکند. اگر Base64 URL-safe را مستقیماً به atob() یا base64.b64decode() بدهید، شکست میخورد. همیشه قبل از رمزگشایی با کتابخانههای استاندارد - را به + و _ را به / تبدیل کنید.
✕
فاصله و شکست خط
گواهیهای PEM، داده MIME، و Base64 کپیشده اغلب هر ۷۶ کاراکتر شکست خط دارند. قبل از رمزگشایی تمام فاصلهها را حذف کنید تا از InvalidCharacterError جلوگیری شود.
✕
خروجی باینری در مقابل متن
Base64 میتواند هر داده باینری را رمزگذاری کند، نه فقط متن. اگر داده اصلی یک فایل باینری بود (تصویر، PDF)، رمزگشایی آن بهعنوان متن UTF-8 خروجی نامفهوم تولید میکند. برای بارهای غیر متنی از روش خروجی باینری مناسب استفاده کنید.
نمونه کد
نحوه رمزگشایی رشته Base64 در زبانها و محیطهای محبوب:
JavaScript (browser)
// Standard Base64
const decoded = decodeURIComponent(escape(atob(encoded)))
// URL-safe Base64 (restore padding first)
function decodeUrlSafe(str) {
const padded = str.replace(/-/g, '+').replace(/_/g, '/')
const pad = padded.length % 4
return decodeURIComponent(escape(atob(padded + '='.repeat(pad ? 4 - pad : 0))))
}
چندین رمزگشای Base64 آنلاین وجود دارد. تفاوتهای کلیدی برای استفاده روزانه توسعهدهندگان حریم خصوصی، رفع خودکار، و پردازش Unicode است.
کاملاً خصوصی — بدون سرور
این رمزگشا کاملاً در مرورگر شما اجرا میشود. رشتههای Base64 شما — که ممکن است حاوی کلیدهای API، توکنها، یا اسرار باشند — هرگز به هیچ سروری ارسال نمیشوند.
رفع خودکار Padding گمشده
بسیاری از رمزگشاها وقتی کاراکترهای = گم هستند (رایج در JWT و رشتههای URL-safe) شکست میخورند. این ابزار بهطور خودکار padding صحیح را قبل از رمزگشایی بازیابی میکند.
آگاه از Unicode و باینری
رشتههای رمزگذاریشده UTF-8 را بهدرستی رمزگشایی میکند، از جمله ایموجی، CJK، و تمام کاراکترهای غیر ASCII. خروجی باینری را بدون پرتاب خطا مدیریت میکند.
سوالات متداول
چرا رمزگشایی کاراکترهای نامفهوم به من میدهد؟
رایجترین دلیل رمزگشایی داده باینری (تصاویر، فایلهای فشرده) بهعنوان متن UTF-8 است — بایتهای باینری اغلب دنبالههای Unicode معتبر تشکیل نمیدهند. دلیل دیگر رمزگشایی Base64 URL-safe (-_) با رمزگشای استاندارد است که +/ انتظار دارد. بررسی کنید کدام نوع منبع شما استفاده میکند.
InvalidCharacterError چیست؟
این خطای مرورگر از atob() زمانی رخ میدهد که ورودی حاوی کاراکترهایی خارج از جدول Base64 باشد، مانند کاراکترهای URL-safe (- یا _)، فاصله، شکست خط، یا کاراکترهای غیر ASCII. قبل از فراخوانی atob() فاصلهها را حذف کرده و کاراکترهای URL-safe را تبدیل کنید.
چطور بفهمم Base64 من URL-safe است یا استاندارد؟
دنبال کاراکترهای - یا _ بگردید: اگر وجود داشتند، Base64 URL-safe است. Base64 استاندارد از + و / استفاده میکند. Base64 URL-safe همچنین معمولاً کاراکترهای padding = را حذف میکند. توکنهای JWT همیشه از Base64 URL-safe استفاده میکنند.
آیا رمزگشایی Base64 میتواند بیصدا شکست بخورد؟
بله. برخی رمزگشاها بهجای پرتاب خطا، کاراکترهای نامعتبر را بهآرامی نادیده میگیرند و خروجی نادرست تولید میکنند. همیشه تأیید کنید که داده رمزگشاییشده با قالب مورد انتظار (JSON، سربرگ تصویر، و غیره) مطابقت دارد.
آیا برای رمزگشایی Base64 محدودیت اندازه وجود دارد؟
این ابزار مبتنی بر مرورگر میتواند رشتههای Base64 تا چند مگابایت را قبل از کند شدن رابط کاربری پردازش کند. برای فایلهای بسیار بزرگ (رشتههای Base64 چند مگابایتی)، از ابزار CLI یا رمزگشای سمت سرور استفاده کنید که ورودیهای دلخواه بزرگ را بهطور کارآمد پردازش میکند.
چرا Base64 با یک یا دو علامت = پایان مییابد؟
= کاراکتر padding است. Base64 هر ۳ بایت را به ۴ کاراکتر رمزگذاری میکند. اگر طول داده اصلی مضرب ۳ نباشد، یک یا دو کاراکتر = اضافه میشوند تا طول کل خروجی مضرب ۴ باشد. یک = به معنای ۲ بایت ورودی در گروه آخر است؛ دو == به معنای ۱ بایت ورودی.
چطور تصویر Base64 را رمزگشایی کنم؟
اگر یک data URI مانند data:image/png;base64,iVBORw... دارید، پیشوند را حذف کرده و فقط بخش Base64 را جایگذاری کنید. بایتهای رمزگشاییشده نمایانگر تصویر باینری خام هستند. این ابزار به متن رمزگشایی میکند — برای مشاهده تصویر، از data URI کامل مستقیماً در ویژگی img src در HTML استفاده کنید.
چرا خروجی رمزگشاییشده من کاراکترهای ناخوانا دارد؟
خروجی ناخوانا معمولاً به این معناست که داده اصلی باینری بود (تصویر، PDF، یا فایل غیر متنی دیگر) نه متن. Base64 میتواند هر بایتی را رمزگذاری کند — نه فقط متن. اگر منبع باینری بود، نتیجه رمزگشایی UTF-8 معتبر نیست و بهصورت کاراکترهای تصادفی ظاهر میشود.