Utilia

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

أداة مجانية لترميز Base64 وفك ترميزه مع دعم كامل لـ UTF-8 والعربية وخيار base64url الآمن للروابط. تعمل كليًا في متصفحك دون رفع أي شيء.

كيفية استخدام أداة ترميز Base64 وفك ترميزه

  1. اختر ما إذا كنت تريد ترميز نص إلى Base64 أو فك الترميز لإعادة Base64 إلى نص.
  2. اكتب الإدخال أو الصقه في مربع النص. الأحرف العربية والحروف المشكولة والأبجديات غير اللاتينية والرموز التعبيرية كلها مدعومة.
  3. إذا كانت النتيجة ستُستخدم في رابط URL أو اسم ملف أو رمز JSON Web Token، ففعّل خيار آمن للروابط (base64url) للحصول على صيغة base64url.
  4. اقرأ النتيجة وانسخها. وإذا كنت تفك الترميز وكان الإدخال ليس Base64 صالحًا، تظهر رسالة خطأ توضّح ذلك بدل إنتاج نتيجة عشوائية.

ما هو Base64؟

Base64 طريقة لتمثيل أي بايتات باستخدام 64 حرفًا فقط من أحرف ASCII القابلة للطباعة: الأحرف اللاتينية الكبيرة A–Z، والصغيرة a–z، والأرقام 0–9، والرمزان + و/. ويُستخدم الحرف = للحشو في النهاية. وقد نشأ لأن أنظمة كثيرة صُممت لنقل النصوص لا البيانات الثنائية الخام؛ فنصوص البريد الإلكتروني، وترويسات HTTP، ومستندات XML وJSON، وروابط data URL، كلها تتوقع أحرفًا تصمد أمام النسخ والتسجيل والنقل دون أن تتغير.

تعمل الخوارزمية على مجموعات من ثلاثة بايتات (24 بت) وتقسمها إلى أربع قيم من 6 بتات، تقابل كلٌّ منها أحد الأحرف الأربعة والستين. لذلك يكون ناتج Base64 دائمًا أكبر من الإدخال بنحو 33%: فكل 3 بايتات تصبح 4 أحرف. وعندما لا يكون طول الإدخال من مضاعفات الثلاثة، تُضاف علامة = واحدة أو اثنتان ليصبح طول الناتج من مضاعفات الأربعة. فمثلًا، تُرمَّز الكلمة Hi إلى SGk=، وتُرمَّز Hello إلى SGVsbG8=.

النص والبايتات وUTF-8

يرمّز Base64 البايتات لا الأحرف، لذا يجب تحويل النص أولًا إلى بايتات. تستخدم هذه الأداة UTF-8، الترميز الذي تعتمده تقريبًا كل صفحات الويب وواجهات API الحديثة. فتصبح الكلمة café مثلًا Y2Fmw6k=، ويأخذ كل حرف عربي بايتين، ويُرمَّز رمز تعبيري مثل 👍 (أربعة بايتات في UTF-8) بشكل صحيح ويعود إلى الرمز نفسه عند فك الترميز. كثير من السكربتات السريعة التي تعتمد على الدالة القديمة btoa() في المتصفح تفشل مع أي حرف خارج Latin-1، ومنها الحروف العربية؛ أما هذه الأداة فليس لديها هذا القيد.

Base64 القياسي مقابل base64url

يستخدم Base64 القياسي الرمزين + و/، ولهما معانٍ خاصة في الروابط ومسارات الملفات. أما الصيغة الآمنة للروابط، base64url، فتستبدل + بـ - و/ بـ _، وغالبًا ما تحذف حشو =. وهي الصيغة المستخدمة في رموز JSON Web Token (JWT)، وفي كثير من معاملات OAuth، وفي خدمات تقصير الروابط. فعّل خيار الأمان للروابط عندما تحتاج إلى هذه الصيغة، واتركه معطّلًا لمرفقات البريد وروابط data URL وملفات الإعدادات التي تتوقع Base64 القياسي.

Base64 ليس تشفيرًا

هذا أكثر سوء فهم شيوعًا. Base64 ترميز: لا مفتاح له ولا سر، ويستطيع أي شخص عكسه فورًا. ترميز كلمة مرور أو مفتاح API أو بيانات شخصية بـ Base64 لا يحميها إطلاقًا. فمصادقة HTTP Basic مثلًا ترسل username:password بترميز Base64، ولهذا يجب ألا تُستخدم إلا عبر HTTPS. إذا كنت تحتاج إلى السرية، فاستخدم تشفيرًا حقيقيًا (مثل AES) أو دالة تجزئة لكلمات المرور (مثل Argon2 أو bcrypt)، لا Base64.

الخصوصية

يجري كل الترميز وفك الترميز محليًا في متصفحك بواسطة JavaScript. لا يُرسل النص الذي تدخله إلى أي خادم، ولا يُخزَّن ولا يُسجَّل، لذا يمكنك فحص الرموز المميزة وقيم الإعدادات بأمان. تعمل هذه الأداة على النصوص فقط، ولا تقبل رفع الملفات.

الأسئلة الشائعة

لماذا يبدو النص بعد فك الترميز رموزًا عشوائية؟

على الأرجح تمثّل سلسلة Base64 بيانات ثنائية، كصورة أو ملف مضغوط أو محتوى مشفّر، لا نصًا. فك ترميزها ينتج بايتات صحيحة، لكنها ليست نص UTF-8 ذا معنى. وقد يحدث ذلك أيضًا إذا كان النص الأصلي مرمّزًا بمجموعة أحرف غير UTF-8، مثل Windows-1256 القديم للعربية.

لماذا تقول الأداة إن Base64 الخاص بي غير صالح؟

لا يحتوي Base64 الصالح إلا على الأحرف الأربعة والستين المسموح بها مع حشو = اختياري، ويجب أن يتوافق طوله مع التجميع في أحرف أربعة. ومن الأسباب الشائعة أحرف زائدة نُسخت عن طريق الخطأ، أو سلسلة مقطوعة، أو سلسلة base64url (فيها - و_) يجري فك ترميزها دون تفعيل خيار آمن للروابط (base64url).

هل يمكنني ترميز الصور أو الملفات الأخرى؟

لا. هذه الأداة مصممة للنصوص فقط. لتضمين صورة في HTML أو CSS تحتاج إلى أداة تقرأ البايتات الخام للملف وتنتج رابط data URL.

هل Base64 آمن لتخزين كلمات المرور؟

لا. يستطيع أي شخص فك ترميز Base64 في جزء من الثانية. يجب تخزين كلمات المرور بخوارزمية تجزئة بطيئة مخصصة مثل Argon2 أو scrypt أو bcrypt.

ما الفرق بين Base64 مع الحشو ودونه؟

الحشو بعلامة = يجعل طول الناتج من مضاعفات الأربعة فحسب، ولا يحمل أي معلومة. وتستطيع معظم أدوات فك الترميز إعادة بناء البيانات من دونه. وكثيرًا ما تحذف صيغة base64url الحشو لأن = نفسه حرف محجوز في الروابط.