Base64 Encoder and Decoder
A free online Base64 encoder and decoder for quick encoding and decoding, with convenient features like UTF-8 support, secure copy, and clear.
رمزگذاری (متن → Base64)
رمزگشایی (Base64 → متن)
راهنمای استفاده
Base64 دادههای دودویی را به صورت ASCII رمزگذاری میکند تا قابل انتقال و ذخیرهسازی باشند. اندازه حدود 33% افزایش مییابد.
رمزگذاری: تبدیل متن ساده به Base64 برای انتقال ایمنتر.
رمزگشایی: بازیابی متن اصلی از رشته Base64.
ویژگیها
- 安全 UTF-8: پشتیبانی صحیح از کاراکترهای غیر ASCII (با پیچیدهسازی encodeURIComponent/unescape).
- پشتیبانی URL-safe: تغییر یککلیک + / به - _، و حذف اختیاری پرکننده =.
- پردازش قبل از رمزگشایی: نادیده گرفتن فضاهای خالی، بازگرداندن خودکار URL-safe و پر کردن اتوماتیک =.
- تعامل بلادرنگ: پردازش خودکار ورودی، نمایش آمار طول و افزایش حجم.
- قابلیت استفاده: کپی سریع، پر کردن متقابل نتایج، دسترسی از کیبورد و سازگاری با موبایل.
- طرح یکپارچه: بدون استفاده از کلاسهای Tailwind dark:، کاملاً با تم DaisyUI طراحی شده.
Base64 چیست؟
Base64 روشی برای رمزگذاری دادههای دودویی به صورت متن ASCII است که معمولاً برای انتقال محتوای تصاویر یا فایلها در پروتکلهای متنی مانند JSON، XML و HTTP استفاده میشود.
این روش هر ۳ بایت را به ۴ کاراکتر قابل چاپ تبدیل میکند و معمولاً باعث افزایش حجم حدود ۳۳٪ میشود.
Base64 استاندارد از کاراکترهای A–Z a–z 0–9 + / و پرکننده = استفاده میکند؛ نسخه URL-safe جایگزینهای - _ را به جای + / به کار میبرد تا از مشکلات اسکیپکردن در آدرسهای وب جلوگیری شود.
کاربردهای رایج
- ضمیمه کردن تصاویر یا فایلهای کوچک به صورت Data URI.
- انتقال دادههای دودویی بین کلاینت و سرور (مانند رمزنگاریهای کلید یا جریانهای فشرده).
- تبدیل متن به نسخه قابل چاپ برای جلوگیری از مشکلات ناسازگاری کدگذاری یا کاراکترهای نامرئی.
سوالات متداول و نکات مهم
- مجموعه کاراکترها: در محیط وب، ابتدا متن خود را به UTF-8 تبدیل کنید (این ابزار این کار را به صورت پیشفرض انجام میدهد).
- URL-safe: برای پارامترها یا مسیرهای URL، از نسخه URL-safe استفاده کنید و در نظر داشته باشید که پرکنندهها را حذف کنید.
- پرکنندهها: برخی پیادهسازیها اجازه حذف = را میدهند؛ هنگام رمزگشایی باید به صورت خودکار به مضرب ۴ تکمیل شوند.
- شکست خط: Base64 MIME ممکن است شامل شکست خط باشد؛ برای رمزگشایی، گزینه «احراز کاراکترهای سفید» را فعال کنید.
چگونه Base64 را در زبانهای برنامهنویسی رمزگذاری و رمزگشایی کنیم
JavaScript
متن → Base64 (امن UTF-8)
const encoded = btoa(unescape(encodeURIComponent(text)));
// URL-safe
const urlSafe = encoded.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/g, '');
رمزگشایی (Base64 → متن)
// پیشپردازش: میتوانید -_ را به +/ جایگزین کنید
let b64 = input.replace(/-/g, '+').replace(/_/g, '/');
if (b64.length % 4 !== 0) b64 = b64.padEnd(b64.length + (4 - (b64.length % 4)), '=');
const text = decodeURIComponent(escape(atob(b64)));
PHP
رمزگذاری (متن → Base64)
$encoded = base64_encode($text);
// URL-safe
$urlSafe = rtrim(strtr($encoded, '+/', '-_'), '=');
رمزگشایی (Base64 → متن)
$b64 = strtr($input, '-_', '+/');
// تکمیل خودکار '='
if (strlen($b64) % 4 !== 0) $b64 .= str_repeat('=', 4 - (strlen($b64) % 4));
$text = base64_decode($b64);
Python
رمزگذاری (متن → Base64)
import base64
encoded = base64.b64encode(text.encode('utf-8')).decode('ascii')
# رمزگذاری URL-safe (حذف پرکننده)
url_safe = encoded.replace('+','-').replace('/','_').rstrip('=')
رمزگشایی (Base64 → متن)
import base64
def b64_decode(s: str) -> str:
s = s.replace('-','+').replace('_','/')
s += '=' * (-len(s) % 4) # تکمیل خودکار '='
return base64.b64decode(s).decode('utf-8')
Go
رمزگذاری (متن → Base64)
import (
"encoding/base64"
)
enc := base64.StdEncoding.EncodeToString([]byte(text))
// رمزگذاری URL-safe (بدون پرکننده)
urlEnc := base64.RawURLEncoding.EncodeToString([]byte(text))
رمزگشایی (Base64 → متن)
import (
"encoding/base64"
)
decBytes, err := base64.StdEncoding.DecodeString(enc)
// رمزگشایی URL-safe (بدون پرکننده)
decURL, err2 := base64.RawURLEncoding.DecodeString(urlEnc)
Rust
رمزگذاری (متن → Base64)
use base64::{engine::general_purpose, Engine as _};
let enc = general_purpose::STANDARD.encode(text.as_bytes());
// رمزگذاری URL-safe (بدون پرکننده)
let url_enc = general_purpose::URL_SAFE_NO_PAD.encode(text.as_bytes());
رمزگشایی (Base64 → متن)
use base64::{engine::general_purpose, Engine as _};
let dec_bytes = general_purpose::STANDARD.decode(&enc).unwrap();
let dec = String::from_utf8(dec_bytes).unwrap();
let url_dec = String::from_utf8(
general_purpose::URL_SAFE_NO_PAD.decode(&url_enc).unwrap()
).unwrap();
وابستگی Cargo: base64 = "0.22"
Java
رمزگذاری (متن → Base64)
import java.nio.charset.StandardCharsets;
import java.util.Base64;
String enc = Base64.getEncoder().encodeToString(text.getBytes(StandardCharsets.UTF_8));
// رمزگذاری URL-safe (بدون پرکننده)
String urlEnc = Base64.getUrlEncoder().withoutPadding().encodeToString(text.getBytes(StandardCharsets.UTF_8));
رمزگشایی (Base64 → متن)
import java.nio.charset.StandardCharsets;
import java.util.Base64;
String dec = new String(Base64.getDecoder().decode(enc), StandardCharsets.UTF_8);
String urlDec = new String(Base64.getUrlDecoder().decode(urlEnc), StandardCharsets.UTF_8);