محوّل ومفكّك شفرة Base64

أداة مجانية عبر الإنترنت لترميز وفك ترميز Base64 بسرعة، تتميز بدعم آمن لـ UTF-8، وتحويل آمن للروابط، وإكمال تلقائي للحشو، وإحصائيات فورية، ووظيفة نسخ آمنة. توفر أمثلة برمجية متعددة اللغات، وإنشاء عناوين Data URI، وأدلة استخدام مفصلة، وأسئلة شائعة. واجهة سهلة الاستخدام مع تعبئة إدخال ثنائية الاتجاه، ودعم الوصول عبر لوحة المفاتيح، وتصميم متوافق مع الجوال. لا حاجة للتنزيل، تعمل مباشرة في متصفحك.

ترميز (نص → Base64)

فك التشفير (Base64 → نص)

طريقة الاستخدام

يُرمِّز Base64 البيانات الثنائية إلى ASCII لضمان النقل والتخزين الآمن. يزيد الحجم بنسبة 33% تقريبًا.
الترميز: تحويل النص العادي إلى Base64 لنقل آمن.
فك الترميز: استعادة النص الأصلي من سلسلة Base64.

الميزات

  • آمن مع UTF-8: يتعامل بشكل صحيح مع الأحرف غير ASCII (باستخدام encodeURIComponent/unescape).
  • دعم صيغة URL الآمنة: تبديل بنقرة واحدة بين + / و - _، مع خيار إزالة حشو المسافات =.
  • معالجة مسبقة قبل فك الترميز: تجاهل المسافات البيضاء، وتحويل تلقائي لصيغة URL الآمنة، وإضافة الحشو = تلقائيًا.
  • تفاعل فوري: تتم معالجة الإدخال على الفور، مع عرض إحصائيات الطول ومعدل النمو.
  • سهولة الاستخدام: نسخ سريع، تعبئة ثنائية الاتجاه بين حقول الإدخال، دعم لوحة المفاتيح، ومتوافق مع الجوال.
  • سمة متناسقة: لا توجد أصناف Tailwind dark: — تنسيق كامل باستخدام سمات DaisyUI.

أمثلة سريعة

النص الأصلي:
Hello, World!
Base64:
SGVsbG8sIFdvcmxkIQ==

ما هو 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 في لغات البرمجة

JavaScript
نص → Base64 (آمن مع UTF-8)
const encoded = btoa(unescape(encodeURIComponent(text)));
// آمن للاستخدام في عناوين URL
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
$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 (إزالة الحشو)
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 (بدون حشو)
urlEnc := base64.RawURLEncoding.EncodeToString([]byte(text))
فك الترميز (Base64 → نص)
import (
    "encoding/base64"
)

decBytes, err := base64.StdEncoding.DecodeString(enc)
// فك ترميز آمن لعناوين URL (بدون حشو)
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 (بدون حشو)
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 (بدون حشو)
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);

أمثلة على Data URI

تضمين الصور أو الملفات الصغيرة كعناوين URI بيانات:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA...

ملاحظة: تجنب استخدام عناوين URI للبيانات (Data URIs) للملفات الكبيرة، حيث إنها تزيد بشكل كبير من حجم ملفات HTML/JSON وتؤدي إلى تدهور الأداء.