# ترميز وفك ترميز Base64

> أداة متقدمة لترميز وفك ترميز النصوص إلى Base64. تدعم ترميز UTF-8، وتوفر وضع URL-safe، وتشرح مبدأ الترميز. مجانية وبالكامل عبر الإنترنت.

URL: https://acrafto.com/ar/base64-encoder-decoder/

Tools are interactive browser apps; there is no public API, no endpoints to call and no server-side processing. To use a tool, open its HTML page in a browser.

هل تحتاج إلى تحويل نص مقروء إلى صيغة Base64 للاستخدام في رؤوس HTTP، أو على العكس، فك تشفير محتوى رمز API؟ أداة **Base64 Text Encoder & Decoder** الخاصة بنا هي أداة متخصصة للتعامل مع سلاسل النصوص، ويمكنها التعامل مع التعقيدات مثل علامات التشكيل أو الأحرف الخاصة.

> **هل تعمل مع الصور؟**  
> إذا كان الكود الخاص بك يبدأ بـ `data:image/png...` أو كنت ترغب في تحويل ملف إلى نص، فستعرض لك هذه الأداة أحرفًا غير منطقية فقط. استخدم أداتنا المتخصصة لتحويل الصور.

## كيف يعمل تنسيق Base64؟

يستخدم الكثير من الناس Base64 يوميًا، ولكن قليلين هم من يعرفون كيف يعمل “تحت الغطاء”. إنه ليس سحرًا، بل مجرد رياضيات بسيطة بالبتات.

يتم تخزين النص العادي في الكمبيوتر في 8 بتات (1 بايت). لكن Base64 يستخدم “أبجدية” مكونة من 64 حرفًا (`A-Z`, `a-z`, `0-9`, `+`, `/`). نظرًا لأن `2^6 = 64`، فإن حرف Base64 واحدًا يمثل بالضبط **6 بتات** من المعلومات.

**عملية التحويل (الخوارزمية):**

1. تُؤخذ ثلاثة أحرف من النص الخاص بك (3 × 8 بتات = 24 بتًا).
2. تقسم هذه الـ 24 بتًا إلى أربع مجموعات من 6 بتات.
3. يُعين لكل مجموعة حرف من جدول Base64.

**النتيجة:** نظرًا لأننا نحول 3 أحرف إلى 4 أحرف، فإن سلسلة Base64 الناتجة تكون دائمًا أطول بحوالي **33%** من النص الأصلي.

## مشكلة مجموعة الأحرف: لماذا تقوم محولات Base64 العادية بإتلاف اللغة التشيكية؟

إذا حاولت في أي وقت تشفير كلمة “Kůň” في وحدة تحكم المتصفح باستخدام الدالة `btoa('Kůň')`، فمن المحتمل أن تكون قد تلقيت خطأ: *String contains characters outside of the Latin1 range.*

تم تصميم Base64 في الأصل لأحرف ASCII ذات 7 بتات. ومع ذلك، فإن اللغة التشيكية والرموز التعبيرية (الإيموجي) والرموز الخاصة الأخرى (UTF-8) تشغل بايتات متعددة في الذاكرة (multibyte characters).

- الحرف `a` = 1 بايت.
- الحرف `ř` = 2 بايت.
- الرموز التعبيرية 🚀 = 4 بايتات.

تحل أداتنا هذه المشكلة. قبل الترميز إلى Base64 نفسه، نقوم بتحويل النص بشكل صحيح إلى تسلسل من بايتات UTF-8. بفضل هذا، يمكنك ترميز كائنات JSON والنصوص التشيكية والرموز الحديثة بأمان دون خطر تلف البيانات.

## أين يستخدم ترميز نص Base64؟

بينما تُستخدم الصور في Base64 بشكل أساسي للتضمين في CSS/HTML، فإن لـ Base64 النصي استخدامات مختلفة تمامًا في أنظمة الواجهة الخلفية (backend):

### 1\. مصادقة HTTP الأساسية (HTTP Basic Authentication)

عند تسجيل الدخول إلى واجهة برمجة التطبيقات (API)، غالبًا ما يبدو الرأس كالتالي: `Authorization: Basic 2KfYs9mFX9in2YTZhdiz2KrYrtiv2YU62YPZhNmF2Klf2KfZhNmF2LHZiNix` خلف هذا الكود يكمن ببساطة اسم مستخدم وكلمة مرور مدمجين في شكل `اسم_المستخدم:كلمة_المرور`. تتيح لك أداتنا إنشاء أو التحقق من هذه الرؤوس بسهولة.

### 2\. رموز الويب JSON (JSON Web Tokens - JWT)

تستخدم تطبيقات الويب الحديثة ما يسمى بـ JWT لتسجيل الدخول. يبدو هذا الرمز المميز كسلاسل طويلة مفصولة بنقاط. جزء البيانات (الحمولة - Payload) هو كائن JSON عادي مشفر بـ Base64.

- **نصيحة:** حاول لصق الجزء الأوسط من رمز JWT الخاص بك هنا وفك ترميزه. سترى بالضبط البيانات التي يسجلها التطبيق عنك (مثل معرف المستخدم، تاريخ انتهاء الصلاحية).

### 3\. ملفات التكوين (أسرار Kubernetes)

تقوم منصات مثل Kubernetes بتخزين البيانات السرية (Secrets) في ملفات تكوين YAML بتنسيق Base64. هذا ليس تشفيرًا، ولكنه طريقة لتخزين البيانات الثنائية أو النصوص التي تحتوي على أحرف إشكالية (أسطر جديدة، علامات اقتباس) في ملف نصي.

## ما هو “ترميز Base64 الآمن لروابط URL” ولماذا هو مهم؟

تحتوي أبجدية Base64 القياسية على الأحرف `+` (علامة زائد) و `/` (شرطة مائلة). لكلا هذين الحرفين معنى خاص في عناوين URL:

- `/` يفصل الدلائل.
- `+` غالبًا ما يفسر على أنه مسافة.

إذا أرسلت Base64 قياسيًا في معلمة URL (على سبيل المثال، `site.com?token=ab/cd+ef`)، فقد يقرأ الخادم البيانات بشكل خاطئ.

**الحل (وضع URL الآمن):** يقوم مفتاح التبديل الخاص بنا بتنشيط إصدار **Base64URL** (وفقًا لمعيار RFC 4648)، والذي يقوم بإجراء التغييرات التالية:

- يتم تغيير `+` إلى `-` (شرطة).
- يتم تغيير `/` إلى `_` (شرطة سفلية).
- في النهاية، يتم إزالة الأحرف `=` (الحشو)، والتي ليست ضرورية في عناوين URL.

---

## خرافة: Base64 ليس تشفيرًا!

من المهم إدراك الفرق الجوهري الذي غالبًا ما يخلط فيه المبتدئون:

1. **الترميز (Encoding - Base64):** يستخدم لنقل البيانات. إنه مثل حزم شيء في حقيبة حتى لا يتضرر في الطريق. أي شخص يجد الحقيبة يمكنه فتحها (فك ترميزها) ورؤية المحتوى. **إنه ليس آمنًا للبيانات السرية.**
2. **التشفير (Encryption - AES, RSA):** يقفل البيانات بمفتاح. بدون المفتاح، لا يمكنك الوصول إلى المحتوى.
3. **التجزئة (Hashing - SHA, MD5):** عملية أحادية الاتجاه (على سبيل المثال، لتخزين كلمات المرور). لا يمكن الحصول على النص الأصلي من النتيجة.

*إذا كنت بحاجة إلى إرسال كلمة مرور أو معلومات حساسة، فإن Base64 وحده لا يكفي. يجب عليك استخدام HTTPS (SSL/TLS) الذي يقوم بتشفير النقل.*

---

## الأسئلة الشائعة (FAQ)

### ماذا تعني علامة "=" في نهاية السلسلة؟

هذا ما يسمى بـ "الحشو" (padding). نظرًا لأن Base64 يقوم بترميز البيانات في مجموعات من 3 أحرف، فقد لا يكون طول النص الأصلي قابلاً للقسمة على ثلاثة. تضاف علامات \`=\` في النهاية حتى يتعرف مفكك الترميز على عدد البتات التي يجب تجاهلها في النهاية.

### لماذا يظهر النص المفكوك الترميز "مبعثرًا"؟

من المحتمل أنك تحاول فك ترميز بيانات ليست نصًا. إذا كانت سلسلة Base64 تمثل ملفًا مضغوطًا (ZIP) أو صورة أو بيانات مشفرة، فإن التحويل إلى نص (UTF-8) لا معنى له. حاول معرفة مصدر البيانات.

### هل تعمل الأداة بدون اتصال بالإنترنت؟

نعم. جميع منطق التحويل مكتوب بلغة JavaScript ويعمل مباشرة في متصفحك. بمجرد تحميل الصفحة، يمكنك قطع الاتصال بالإنترنت وستظل الأداة تعمل. لا يتم إرسال بياناتك إلى أي مكان.

## Other languages

- Čeština (cs): [Base64 Encoder a Decoder](https://acrafto.com/cs/base64-decoder-encoder/) ([Markdown](https://acrafto.com/cs/base64-decoder-encoder/index.md))
- Slovenčina (sk): [Base64 kódovač a dekódovač](https://acrafto.com/sk/base64-kodovac-dekodovac-online/) ([Markdown](https://acrafto.com/sk/base64-kodovac-dekodovac-online/index.md))
- English (en): [Base64 Encoder and Decoder](https://acrafto.com/en/base64-encoder-decoder/) ([Markdown](https://acrafto.com/en/base64-encoder-decoder/index.md))
- Deutsch (de): [Base64 Encoder und Decoder](https://acrafto.com/de/base64-encoder-decoder-online/) ([Markdown](https://acrafto.com/de/base64-encoder-decoder-online/index.md))
- Français (fr): [Encodeur et décodeur Base64](https://acrafto.com/fr/encodeur-decodeur-base64/) ([Markdown](https://acrafto.com/fr/encodeur-decodeur-base64/index.md))
- Español (es): [Codificador y decodificador Base64](https://acrafto.com/es/codificador-base64-decodificador-online/) ([Markdown](https://acrafto.com/es/codificador-base64-decodificador-online/index.md))
- Italiano (it): [Encoder e decoder Base64](https://acrafto.com/it/encoder-decoder-base64-online/) ([Markdown](https://acrafto.com/it/encoder-decoder-base64-online/index.md))
- Português (pt): [Codificador e decodificador Base64](https://acrafto.com/pt/encoder-decoder-base64-online/) ([Markdown](https://acrafto.com/pt/encoder-decoder-base64-online/index.md))
- Nederlands (nl): [Base64 encoder en decoder](https://acrafto.com/nl/base64-encoder-decoder/) ([Markdown](https://acrafto.com/nl/base64-encoder-decoder/index.md))
- Polski (pl): [Koder i dekoder Base64](https://acrafto.com/pl/koder-dekoder-base64-online/) ([Markdown](https://acrafto.com/pl/koder-dekoder-base64-online/index.md))
- Română (ro): [Base64 encoder și decoder](https://acrafto.com/ro/codor-decodor-base64/) ([Markdown](https://acrafto.com/ro/codor-decodor-base64/index.md))
- Magyar (hu): [Base64 kódoló és dekódoló](https://acrafto.com/hu/base64-kodolo-dekodolo-online/) ([Markdown](https://acrafto.com/hu/base64-kodolo-dekodolo-online/index.md))
- Ελληνικά (el): [Κωδικοποίηση και αποκωδικοποίηση Base64](https://acrafto.com/el/base64-encoder-decoder/) ([Markdown](https://acrafto.com/el/base64-encoder-decoder/index.md))
- Български (bg): [Base64 енкодер и декодер](https://acrafto.com/bg/base64-enkoder-dekoder-onlain/) ([Markdown](https://acrafto.com/bg/base64-enkoder-dekoder-onlain/index.md))
- Hrvatski (hr): [Base64 koder i dekoder](https://acrafto.com/hr/base64-koder-dekoder/) ([Markdown](https://acrafto.com/hr/base64-koder-dekoder/index.md))
- Slovenščina (sl): [Base64 kodirnik in dekodirnik](https://acrafto.com/sl/base64-kodirnik-dekodirnik/) ([Markdown](https://acrafto.com/sl/base64-kodirnik-dekodirnik/index.md))
- Eesti (et): [Base64 kodeerija ja dekodeerija](https://acrafto.com/et/base64-teisendaja/) ([Markdown](https://acrafto.com/et/base64-teisendaja/index.md))
- Latviešu (lv): [Base64 kodētājs un dekodētājs](https://acrafto.com/lv/base64-kodetajs-dekodetajs/) ([Markdown](https://acrafto.com/lv/base64-kodetajs-dekodetajs/index.md))
- Lietuvių (lt): [Base64 koduotuvas ir dekoduotuvas](https://acrafto.com/lt/base64-koduotuvas-dekoduotuvas/) ([Markdown](https://acrafto.com/lt/base64-koduotuvas-dekoduotuvas/index.md))
- Svenska (sv): [Base64 encode och decode](https://acrafto.com/sv/base64-kodare-avkodare-online/) ([Markdown](https://acrafto.com/sv/base64-kodare-avkodare-online/index.md))
- Dansk (da): [Base64 encoder og dekoder](https://acrafto.com/da/base64-encoder-dekoder-online/) ([Markdown](https://acrafto.com/da/base64-encoder-dekoder-online/index.md))
- Suomi (fi): [Base64-kooderi ja -dekooderi](https://acrafto.com/fi/base64-kooderi-dekooderi/) ([Markdown](https://acrafto.com/fi/base64-kooderi-dekooderi/index.md))
- Norsk (no): [Base64-enkoder og -dekoder](https://acrafto.com/no/base64-enkoder-dekoder/) ([Markdown](https://acrafto.com/no/base64-enkoder-dekoder/index.md))
- Українська (uk): [Base64 кодер і декодер](https://acrafto.com/uk/base64-koder-dekoder-onlajn/) ([Markdown](https://acrafto.com/uk/base64-koder-dekoder-onlajn/index.md))
- Русский (ru): [Base64 кодировщик и декодировщик](https://acrafto.com/ru/base64-koder-dekoder/) ([Markdown](https://acrafto.com/ru/base64-koder-dekoder/index.md))
- Српски (sr): [Base64 enkoder i dekoder](https://acrafto.com/sr/base64-enkoder-dekoder-online/) ([Markdown](https://acrafto.com/sr/base64-enkoder-dekoder-online/index.md))
- Македонски (mk): [Base64 енкодер и декодер](https://acrafto.com/mk/base64-converter/) ([Markdown](https://acrafto.com/mk/base64-converter/index.md))
- Bosanski (bs): [Base64 koder i dekoder](https://acrafto.com/bs/base64-koder-dekoder/) ([Markdown](https://acrafto.com/bs/base64-koder-dekoder/index.md))
- Shqip (sq): [Base64 kodues dhe dekodues](https://acrafto.com/sq/kodues-dekodues-base64-online/) ([Markdown](https://acrafto.com/sq/kodues-dekodues-base64-online/index.md))
- Türkçe (tr): [Base64 kodlayıcı ve çözücü](https://acrafto.com/tr/base64-kodlayici-cozucu-online/) ([Markdown](https://acrafto.com/tr/base64-kodlayici-cozucu-online/index.md))
- 日本語 (ja): [Base64エンコード・デコード](https://acrafto.com/ja/base64-encoder-decoder/) ([Markdown](https://acrafto.com/ja/base64-encoder-decoder/index.md))
- 한국어 (ko): [Base64 인코딩 디코딩](https://acrafto.com/ko/base64-encoder-decoder/) ([Markdown](https://acrafto.com/ko/base64-encoder-decoder/index.md))
- हिन्दी (hi): [Base64 एन्कोडर और डिकोडर](https://acrafto.com/hi/base64-encoder-decoder-online/) ([Markdown](https://acrafto.com/hi/base64-encoder-decoder-online/index.md))
- Bahasa Indonesia (id): [Base64 encode dan decode](https://acrafto.com/id/konverter-base64-online/) ([Markdown](https://acrafto.com/id/konverter-base64-online/index.md))
- Tiếng Việt (vi): [Mã hóa và giải mã Base64](https://acrafto.com/vi/base64-ma-hoa-giai-ma-online/) ([Markdown](https://acrafto.com/vi/base64-ma-hoa-giai-ma-online/index.md))
- ไทย (th): [เข้ารหัสและถอดรหัส Base64](https://acrafto.com/th/base64-encoder-decoder/) ([Markdown](https://acrafto.com/th/base64-encoder-decoder/index.md))
- עברית (he): [קידוד ופענוח Base64](https://acrafto.com/he/base64-encoder-decoder/) ([Markdown](https://acrafto.com/he/base64-encoder-decoder/index.md))
