# مرمِّز Base64 ومفكِّكه — والعناوين وكيانات HTML والسداسي عشري والهروبات

Base64 والترميز المئوي وكيانات HTML والسداسي عشري وهروبات الشرطة المائلة العكسية، في الاتجاهين. ولا شيء يُلصَق في خادم أحد آخر.

> رمِّز وفكِّك Base64 بأبجديتَيه، ورمِّز العناوين ترميزاً مئوياً، واهرُب كيانات HTML، واقرأ السداسي عشري وهروبات الشرطة المائلة العكسية. كل ذلك يجري في متصفحك ولا يُرفع شيء - فلا يغادر رمزٌ مميز جهازك أبداً.

هذه الصفحة أداة تفاعلية تعمل بالكامل داخل متصفحك، على العنوان https://abox.tools/ar/ترميز-base64/ — ولا يُرفَع أي شيء تعطيه إياها. وفيما يلي كل ما تقوله الصفحة عن الأداة بالكلمات؛ لاستخدامها، افتح العنوان.

## نصوصك لا تُرفع **أبدا**. لا يوجد خادم.

كلُّ ترميز هنا حسابٌ على سلسلة نصّية، يجري هنا، في هذه الصفحة. والمرمِّزات مكتوبة يدوياً وهي في `src/encode.js` — وليس هناك غيرها. وليست لهذه الأداة وظيفة شبكية من أي نوع — لا شيء يُجلَب ولا شيء يُرسَل — وذلك يهمّ هنا أكثر منه في أي موضع آخر تقريباً: فالذي يلصقه الناس في مفكِّك Base64 على الشبكة رمزٌ مميز، ولصقُ رمز مميز في موقع شخص آخر تسليمُه إياه.

- ✗ بلا رفع
- ✗ بلا حساب
- ✗ بلا حدّ للحجم
- ✓ يعمل دون اتصال
- ✓ مفتوح المصدر

## كيف ترمِّز Base64 أو تفكّه دون رفعه

1. **اختر الترميز.** Base64 بأبجديتَيه، والترميز المئوي لقيمة واحدة أو لعنوان كامل، وكيانات HTML الخمسة، والبايتات السداسية عشرية، وهروبات الشرطة المائلة العكسية في نصوص الشيفرة. والملاحظة تحت القائمة تقول فيمَ يُستعمل كلٌّ منها.
2. **اختر الاتجاه.** *رمِّز* يأخذ نصاً صريحاً ويخرج الصيغة المرمَّزة؛ و*فكِّك* يعيد الصيغة المرمَّزة نصاً صريحاً. والنتيجة تتبع كتابتك: فتغيير الاتجاه نقرة واحدة، ولا شيء يُكتب من جديد.
3. **الصقه، أو أفلِت الملف.** كلُّ ما تستطيع تحديده ونسخه يعمل. والملفُّ المُفلَت على المُنتقي يقرؤه متصفحك أنت ويضعه في الحقل — فلا خطوة رفع تُغفَل.
4. **اقرأ الخطأ إن وُجد.** المفكِّك الذي يفشل هنا يقول ما وجده — محرفاً لا يستعمله Base64، أو حشواً في غير موضعه، أو بايتات ليست نصاً — بدل أن يعيد شيئاً معقول الشكل وخاطئاً.
5. **خذ النتيجة.** انسخها، أو نزِّلها ملفاً نصّياً. والعدّادات تحت الحقل تقول كم بايتاً دخل وكم بايتاً خرج.

## أيضا في الصندوق

- [مشاركة النص والملفات](https://abox.tools/ar/مشاركة-النص/): المشاركة تعيش في هذا التبويب المفتوح وحده. يستلمها القراء مشفّرة من متصفحك مباشرة، وإغلاق التبويب ينهيها - لا يحتفظ أي خادم بأي شيء.
- [مولّد رموز QR والباركود](https://abox.tools/ar/إنشاء-رمز-qr/): اكتبه، فيصير رمزاً. ولا يُرسَل شيء لصنع واحد.
- [قارئ رموز QR والباركود](https://abox.tools/ar/مسح-رمز-qr/): صوِّبه نحو رمز، أو أفلِت صورةً لواحد. يُقرأ هنا، ولا يُقرأ في أي مكان آخر.
- [البصمة والمجموع التحقّقي](https://abox.tools/ar/حساب-قيمة-التجزئة/): افحص تنزيلاً في مقابل الرقم الذي نشره الناشر، دون أن ترسله إلى أحد.

## أسئلة

### هل يُرفع نصّي إلى أي مكان؟

لا. كلُّ مرمِّز وكلُّ مفكِّكٍ على هذه الصفحة دالّةٌ تعمل في متصفحك أنت، على جهازك أنت. وليست لهذه الأداة وظيفة شبكية من أي نوع — فهي لا تجلب شيئاً ولا ترسل شيئاً أبداً — و `Content-Security-Policy` الخاصة بالصفحة تُسمّي كل عنوان يجوز لها الاتصال به، وليس واحد منها لنا. وذلك هو سبب استعمالها لرمز وصول مميز أو كعكة جلسة: فلصقُ واحد من تلك في مفكِّك شخص آخر إعطاؤه إياه.

### هل Base64 هنا هو Base64 نفسه الذي في كل مكان؟

نعم — وهو مفحوص في مقابل متجهات الاختبار في RFC 4648 لا في مقابل نفسه. والأبجديتان كلتاهما تُفكّ، فرمزُ JWT المكتوب بـ `-` و `_` يُقرأ بيسر قراءةِ واحد مكتوب بـ `+` و `/`، والدخلُ الملفوف عند 64 محرفاً يُفَكّ لفّه عنك. والترميز ببايتات UTF-8، فينجو الحرف المشكول أو الرمز التعبيري من الرحلة ذهاباً وإياباً.

### هل Base64 تشفير؟

لا، وعدُّه تشفيراً هو الغلط الكلاسيكي. Base64 طريقة كتابة: البايتات نفسها مكتوبةً بأبجدية تنجو في عنوان أو بريد إلكتروني أو سلسلة JSON. وأيُّ أحد يستطيع قراءتها من جديد — هذه الصفحة تفعل ذلك في جزء من الثانية — فهو لا يخفي شيئاً ولا يحمي شيئاً. فإن كان ما عندك سرّياً فهو يحتاج تشفيراً حقيقياً قبل ترميزه، لا بدلاً منه.

### لماذا فشل الفكّ؟

لأن الملصوق ليس تماماً ما قيل للمرمِّز إنه هو، والخطأ يقول من أي جهة: محرفٌ خارج أبجدية Base64، أو حشوٌ في غير موضعه، أو علامة مئوية لا يتبعها رقمان سداسيا عشريان، أو بايتات تُفكّ من Base64 فعلاً لكنها ليست نصَّ UTF-8 — وذلك يعني غالباً أن الأصل كان ملفاً لا سلسلة. وكان `atob` الخاص بالمتصفح سيعيد شيئاً معقول الشكل بدلاً من ذلك؛ وأن يُقال لك ما الأمر هو كل الغاية من لصق شيء في مفكِّك.

### ما الفرق بين ترميزَي عنوان الويب؟

قيمةٌ واحدة، أو العنوان كله. ترميزُ *قيمة واحدة* يهرُب كلَّ ما يعطيه العنوان معنى — الشُرَط المائلة وعلامات الاستفهام وعلامات العطف — وذلك ما تريده لمعامل واحد في سلسلة الاستعلام. وترميزُ *عنوان كامل* يُبقي العنوان عاملاً: فالشُرَط المائلة و `?` تبقى، ولا يُهرَب إلا المحارف التي لا يستطيع العنوان حملها أصلاً. واستعمال الأول على عنوان كامل يكسر العنوان؛ واستعمال الثاني على قيمة يضيع موضعَ انتهاء القيمة.

### ما أكبر ملف يستطيع التعامل معه؟

لا حدّ مضبوط هنا، لأنه لا خادم يدفع ثمن واحد. والسقف العملي جهازك أنت: فبضعة ميغابايتات من النصّ لا بأس بها، وفي المستند الطويل جداً تنتظر الصفحة هدأةً في كتابتك قبل أن تعيد الترميز، بدل أن تنازعك على لوحة المفاتيح.

### هل هو مجاني، وهل أحتاج إلى حساب؟

هو مجاني، ولا حساب ولا تسجيل دخول ولا فترة تجريبية ولا حدّ لكم تلصق. ويحمل الموقع إعلانات، وهي ما يدفع تكاليفه؛ ولا يُعطى المعلنون شيئاً عن نصّك.

### هل يعمل دون اتصال؟

نعم. حمِّل الصفحة مرة، ثم اقطع اتصالك بالإنترنت وستظل تعمل. وهذه أيضاً أبسط طريقة لإثبات أنه لا يُرفع شيء: فأداةٌ ترسل نصّك بعيداً ليُفكّ كانت ستتوقف في اللحظة التي تقطع فيها الاتصال.

## كيف يمكن التحقق من وعد الخصوصية

- **ليس لما تلصقه مكان يذهب إليه.** تُسمّي Content-Security-Policy كل عنوان يجوز لهذه الصفحة الاتصال به، وليس واحد منها لنا. فلا يوجد هنا طرفٌ يُجمَع عنده رمزٌ مميز ملصوق، ولا في الشيفرة ما يرسله إليه لو وُجد.
- **لا شيء هنا يجلب شيئاً.** لا يوجد `fetch` ولا `XMLHttpRequest` ولا `sendBeacon` في أي موضع من `src/`. وكلُّ مرمِّز وكلُّ مفكِّكٍ دوالُّ في هذه الصفحة تأخذ سلسلة وتعيد سلسلة.
- **المفكِّك يخبرك حين يكون شيء ما خاطئاً.** فـ `atob` الخاص بالمتصفح يقبل مدخلات كان عليه رفضها ويعيد شيئاً معقول الشكل. أما Base64 هنا فمكتوب يدوياً ويُختبر على متّجهات اختبار RFC 4648، وإذا لم يكن ما لصقته Base64 قال ذلك، وقال السبب. والاختبارات في `tests/js/text-encode.test.js` تختبر ذلك بعينه.
- **ما تُحمّله Google، وما لا يُعطى لها.** نصوص الإعلانات والقياس تأتي من Google، وزر التبرّع من Buy Me a Coffee. ولا يُعطى أيٌّ منها محرفاً واحداً من نصّك. وكل سطر يقرؤه أو يحلّله أو يكتبه يُخدَم من هذا الأصل نفسه ومُدرَج في المستودع.
- **يعمل دون اتصال.** اقطع الاتصال بالشبكة، وتبقى الأداة كما هي، لأنه لم تكن فيها خطوة شبكية قط. وهذا أبسط برهان على الإطلاق.

**تحقّق بنفسك.** لا شيء مما سبق عليك تصديقه دون تحقق. تُولَّد هذه الصفحة من القوالب والإعدادات في المستودع بواسطة سكربت بناء يمكنك قراءته وتشغيله بنفسك، والنتيجة موجودة في فرع `dist` — فقارِن إذن بين ما يُقدَّم فعلا وما ينتجه بناء المصادر: https://github.com/A-Box-of-Tools/website

الملفات الجديرة بالقراءة أولا هي `config/site.toml` من أجل سياسة أمان المحتوى (Content-Security-Policy) و`src/encode.js` لـ Base64 الذي يُختبر على متّجهات اختبار RFC 4648 لا على نفسه، والذي يرفض المدخلات الفاسدة بدل أن يعيد شيئاً معقول الشكل كما يفعل `atob`.
