محوّل ومفكّك شفرة Base64
أداة مجانية عبر الإنترنت لترميز وفك ترميز Base64 بسرعة، تتميز بدعم آمن لـ UTF-8، وتحويل آمن للروابط، وإكمال تلقائي للحشو، وإحصائيات فورية، ووظيفة نسخ آمنة. توفر أمثلة برمجية متعددة اللغات، وإنشاء عناوين Data URI، وأدلة استخدام مفصلة، وأسئلة شائعة. واجهة سهلة الاستخدام مع تعبئة إدخال ثنائية الاتجاه، ودعم الوصول عبر لوحة المفاتيح، وتصميم متوافق مع الجوال. لا حاجة للتنزيل، تعمل مباشرة في متصفحك.
ترميز (نص → Base64)
فك التشفير (Base64 → نص)
طريقة الاستخدام
الميزات
- آمن مع UTF-8: يتعامل بشكل صحيح مع الأحرف غير ASCII (باستخدام encodeURIComponent/unescape).
- دعم صيغة URL الآمنة: تبديل بنقرة واحدة بين + / و - _، مع خيار إزالة حشو المسافات =.
- معالجة مسبقة قبل فك الترميز: تجاهل المسافات البيضاء، وتحويل تلقائي لصيغة URL الآمنة، وإضافة الحشو = تلقائيًا.
- تفاعل فوري: تتم معالجة الإدخال على الفور، مع عرض إحصائيات الطول ومعدل النمو.
- سهولة الاستخدام: نسخ سريع، تعبئة ثنائية الاتجاه بين حقول الإدخال، دعم لوحة المفاتيح، ومتوافق مع الجوال.
- سمة متناسقة: لا توجد أصناف Tailwind dark: — تنسيق كامل باستخدام سمات DaisyUI.
ما هو Base64؟
Base64 هي طريقة لترميز البيانات الثنائية إلى نص ASCII، تُستخدم غالبًا لنقل الصور أو محتويات الملفات عبر البروتوكولات النصية مثل JSON وXML وHTTP.
يقوم بتعيين كل 3 بايتات إلى 4 أحرف قابلة للطباعة، مما يؤدي عادةً إلى زيادة في الحجم بنسبة 33% تقريبًا.
يستخدم Base64 القياسي الأحرف A–Z، a–z، 0–9، +، /، وحرف الحشو =؛ أما متغير URL الآمن فيستبدل + و / بـ - و _ لتجنب مشاكل الهروب في عناوين URL.
استخدامات شائعة
- تضمين الصور أو الملفات الصغيرة كعناوين URI بيانات (Data URIs).
- نقل البيانات الثنائية بين العميل والخادم (مثل النصوص المشفرة والمجالات المضغوطة).
- تحويل النص إلى تنسيق قابل للطباعة لتجنب عدم اتساق الترميز أو الأحرف المخفية.
الأسئلة الشائعة وملاحظات مهمة
- مجموعة الأحرف: في بيئات الويب، قم أولًا بترميز النص بتنسيق UTF-8 (تتضمن هذه الأداة هذه الخطوة تلقائيًا).
- صيغة URL الآمنة: لمعاملات أو مسارات URL، يفضل استخدام المتغير الآمن لـ URL والنظر في إزالة أحرف الحشو.
- الحشو: تسمح بعض التطبيقات بحذف =؛ أثناء فك الترميز، يتم إضافة الحشو تلقائيًا لجعل الطول مضاعفًا للرقم 4.
- أسطر جديدة: قد يتضمن Base64 الخاص بـ MIME أسطرًا جديدة؛ اختر "تجاهل المسافات البيضاء" أثناء فك الترميز للتعامل معها.
كيفية ترميز وفك ترميز Base64 في لغات البرمجة
const encoded = btoa(unescape(encodeURIComponent(text)));
// آمن للاستخدام في عناوين URL
const urlSafe = encoded.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/g, '');
// معالجة مسبقة: استبدال -_ بـ +/
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)));
$encoded = base64_encode($text);
// آمن للاستخدام في عناوين URL
$urlSafe = rtrim(strtr($encoded, '+/', '-_'), '=');
$b64 = strtr($input, '-_', '+/');
// إضافة حشو تلقائي باستخدام '='
if (strlen($b64) % 4 !== 0) $b64 .= str_repeat('=', 4 - (strlen($b64) % 4));
$text = base64_decode($b64);
import base64
encoded = base64.b64encode(text.encode('utf-8')).decode('ascii')
# ترميز آمن لعناوين URL (إزالة الحشو)
url_safe = encoded.replace('+','-').replace('/','_').rstrip('=')
import base64
def b64_decode(s: str) -> str:
s = s.replace('-','+').replace('_','/')
s += '=' * (-len(s) % 4) # إضافة حشو تلقائي باستخدام '='
return base64.b64decode(s).decode('utf-8')
import (
"encoding/base64"
)
enc := base64.StdEncoding.EncodeToString([]byte(text))
// ترميز آمن لعناوين URL (بدون حشو)
urlEnc := base64.RawURLEncoding.EncodeToString([]byte(text))
import (
"encoding/base64"
)
decBytes, err := base64.StdEncoding.DecodeString(enc)
// فك ترميز آمن لعناوين URL (بدون حشو)
decURL, err2 := base64.RawURLEncoding.DecodeString(urlEnc)
use base64::{engine::general_purpose, Engine as _};
let enc = general_purpose::STANDARD.encode(text.as_bytes());
// ترميز آمن لعناوين URL (بدون حشو)
let url_enc = general_purpose::URL_SAFE_NO_PAD.encode(text.as_bytes());
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();
import java.nio.charset.StandardCharsets;
import java.util.Base64;
String enc = Base64.getEncoder().encodeToString(text.getBytes(StandardCharsets.UTF_8));
// ترميز آمن لعناوين URL (بدون حشو)
String urlEnc = Base64.getUrlEncoder().withoutPadding().encodeToString(text.getBytes(StandardCharsets.UTF_8));
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);