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

ترميز URL: سلاسل الاستعلام تحمل أكثر مما تظن
يتيح لك ترميز النسبة المئوية وضع المسافات والحركات والأحرف المحجوزة في عنوان URL بأمان. النص الذي ترمّزه أو تفك ترميزه يكون كثيرًا سلسلة استعلام حقيقية من تطبيق ما، وهي تحمل معرّفات الجلسة وكلمات البحث وعناوين البريد الإلكتروني وأهداف إعادة التوجيه وأحيانًا معاملات موقّعة. إن لصق عنوان URL كامل في مرمّز بعيد يسلّم كل ذلك إلى طرف ثالث دفعة واحدة، وسلاسل الاستعلام هي تحديدًا نوع القيمة التي تنتهي في سجلات الخادم. أما الترميز وفك الترميز في المتصفح فيعني أن العنوان يُعالَج في ذاكرة جهازك ولا يُرسَل أبدًا أثناء عملك عليه.
JWT: الحمولة موقّعة وليست مخفية
يتكوّن رمز JSON Web Token من ثلاثة أقسام Base64url مفصولة بنقاط: ترويسة وحمولة وتوقيع. يثبت التوقيع أن الرمز لم يُعبَث به، لكنه لا يفعل شيئًا لإخفاء الحمولة التي تُفَكّ إلى JSON مقروء يحتوي على معرّفات المستخدم والأدوار وأوقات الانتهاء وأي مطالبات مخصصة أضافها المُصدِر. الرمز الصالح هو أيضًا بيانات اعتماد حية: حتى انتهاء صلاحيته، يستطيع أي شخص يحمله أن يتصرف بصفة المستخدم. إن لصق رمز يعمل في أداة فك ترميز على الإنترنت يرسل بيانات اعتماد نشطة إلى خادم لا تتحكم فيه. أما أداة فك ترميز تحلل الرمز في متصفحك فتكشف الترويسة والحمولة ذاتهما دون أن يغادر ذلك الرمز الصفحة أبدًا.

التجزئة: المدخل أهم من الملخص
تحوّل دالة التجزئة أي مدخل إلى ملخص ثابت الطول، ولا يمكنك عكس الملخص للعودة إلى المدخل. هذه الخاصية تجعل التجزئة مفيدة للتحقق من سلامة ملف أو لمقارنة القيم دون تخزين الأصل. المأزق في جانب المدخل: لحساب تجزئة كلمة مرور أو مستند أو سر إعداد، عليك أن تعطي الأداة القيمة الحقيقية. فإذا كانت تلك الأداة تعمل على خادم، فإن المدخل الحساس ينتقل إلى هناك وإن كان المُعاد هو الملخص غير الضار فقط. أما حساب التجزئة محليًا فيبقي المدخل على جهازك، فتحصل على الملخص الذي تحتاجه دون أن تكشف ما كنت تجزّئه.
ترميز Base64: تعيين البايتات والحشو
يُترجم Base64 البايتات ذات 8 بت إلى أحرف ذات 6 بت بتجميع ثلاثة بايتات من المدخلات (24 بت) في أربع قيم ذات 6 بت. تتوافق كل قيمة ذات 6 بت مع حرف في أبجدية Base64 (A-Z وa-z و0-9 و+ و/). ولأن العملية تتطلب مدخلات قابلة للقسمة على 24 بت، تُحشى المدخلات القصيرة: يُنتج بايت واحد متبقٍّ حرفَي حشو (==)، فيما يُنتج بايتان متبقيان حرفاً واحداً (=). تستبدل متغيرة Base64url، المستخدمة في رموز JSON Web Tokens (JWTs)، الرمز + بـ - والرمز / بـ _ لجعل السلسلة آمنة للـ URL، وتحذف حشو = كلياً لأن أحرف الحشو قد تُسبِّب أخطاءً في مُحلِّلات URI الصارمة. التمييز بين هذين النوعين مهم عند تصحيح أخطاء معالجة الرموز: قد يبدو JWT مشوهاً في حين أنه مرمَّز بـ Base64url وليس Base64 المعياري.
توقيعات JWT: HS256 و RS256 وخلط الخوارزميات
يعتمد أمان رمز JSON Web Token كلياً على توقيعه، أي الجزء الثالث المفصول بنقطة. مع HS256 (HMAC-SHA256)، يُوقِّع الخادم ترويسة وحمولة مُرمَّزتين بـ Base64url باستخدام مفتاح سري. توفر دالة تجزئة SHA-256 مقاومةً للتصادم: من المستحيل حسابياً إنتاج حمولة معدَّلة تُعطي نفس التوقيع دون معرفة المفتاح السري. مع RS256، يُوقِّع الخادم باستخدام مفتاح RSA خاص ويتحقق بمفتاح عام. ثغرة معروفة تُسمى خلط الخوارزميات تنشأ حين لا تُطبِّق مكتبة الخادم نوع الخوارزمية المتوقعة بصرامة. يمكن للمهاجم تغيير حقل alg في ترويسة الرمز من RS256 إلى HS256 وتوقيع الرمز باستخدام المفتاح العام للخادم كسر HMAC، إذ كثيراً ما تكون المفاتيح العامة متاحة. فك ترميز ترويسة JWT محلياً في المتصفح يتيح لك التحقق من الخوارزمية المُحددة فعلياً دون كشف الرمز النشط لأنظمة تسجيل تابعة لجهات خارجية.
الأدوات المذكورة في هذا المقال
- مشفِّر/فكّ مشفِّر Base64شفِّر أو فكّ تشفير Base64, النصوص والملفات. دون رفع، 100% محلي.
- مشفِّر/فكّ مشفِّر URLشفِّر بنسبة مئوية أو فكّ تشفير سلاسل URL. دون رفع، 100% محلي.
- فكّ تشفير JWTفكّ تشفير JWT (الترويسة، الحمولة، انتهاء الصلاحية) دون إرساله. لا يتم التحقق من التوقيع.
- مولِّد الهاشأنتج هاشات MD5 وSHA-1 وSHA-256 وSHA-512 من نصوص أو ملفات. دون رفع.
الأسئلة الشائعة
هل Base64 أو ترميز URL شكل من أشكال الأمان؟
لا. كلاهما ترميز قابل للعكس صُمِّم لنقل البيانات بأمان، لا لحمايتها. فمن يستطيع قراءة السلسلة المرمّزة يفك ترميزها فورًا دون مفتاح أو كلمة مرور. إن كنت بحاجة إلى إبقاء قيمة سرية، فشفّرها بخوارزمية مناسبة وأدِر المفتاح على حدة. تعامل مع أي قيمة بترميز Base64 أو بترميز النسبة المئوية كأنها مكتوبة بنص واضح.
لماذا يهمّ أين أفكّ ترميز رمز أو أجزّئ كلمة مرور؟
لأن المدخل هو الجزء الحساس. الرمز JWT الصالح بيانات اعتماد حية، وكلمة المرور التي تجزّئها هي السر الحقيقي. الأداة المعتمدة على خادم تتلقى ذلك المدخل الخام حتى قبل أن تُعيد أي نتيجة، ما يعني أن نسخة قد تُسجَّل أو تُحفَظ في مكان لا تراه. أما الأداة التي تعمل في متصفحك فتنفّذ العملية ذاتها في ذاكرة جهازك، فلا يُرسَل الرمز أو كلمة المرور إلى أي مكان أبدًا.