الفرق بين Hashing و Encoding و Encryption 🔐
.
.
وأنت بتشتغل في الباك إند، أو بتتعامل مع APIs، أو حتى بتشتغل على تطبيق بسيط فيه عملية تسجيل دخول…
في الغالب قابلت مصطلحات زي Hashing و Encoding و Encryption.
وممكن تفتكر إنهم شبه بعض، أو إن أي واحد فيهم "بيأمن البيانات وخلاص".
لكن الحقيقة إن كل واحد له هدف مختلف تمامًا، ولو استخدمت حاجة غلط ممكن تفتح ثغرات أمنية وأنت مش واخد بالك.
تعال ندردش شوية عن الفرق بينهم...
———
✅ أولًا: الـ Hashing:
تخيل إنك بتعمل بصمة لأي معلومة…
مش علشان ترجع لها بعدين، لكن علشان تتأكد إنها متغيرتش.
الـ Hashing بياخد قيمة (زي password مثلًا)، ويطلع منها سلسلة ثابتة الطول شكلها عشوائي – اسمها Hash – واللي بتستخدمها عشان تطابق أو تتحقق من البيانات من غير ما تحتاج تخزن الأصل.
📌 المهم هنا:
- العملية دي One Way (مفيش رجوع).
- لو غيرت حرف واحد، الـ Hash كله بيتغير.
- وده اللي بنستخدمه مثلًا لما نخزن الـ Passwords في قواعد البيانات.
لو حد عرف الـ Hash، مش هيعرف يطلع منه الباسورد الأصلي (بس ممكن يعمل Brute Force ويحاول يخمنه).
———
✅ ثانيًا: الـ Encoding:
الـ Encoding هو طريقة بنحول بها البيانات لشكل تاني علشان يسهل تخزينها أو نقلها.
زي Base64، اللي بتحول مثلًا صورة أو نص يحتوي رموز غريبة لشكل مفهوم لأي نظام.
📌 المهم هنا:
- العملية دي Two Way (تقدر ترجّع البيانات الأصلية).
- مفيش أي حماية أو تشفير، أي حد يعرف نوع الـ encoding يقدر يفكه بسهولة.
- الهدف منه بس إنك تنقل الداتا بدون ما تضيع أو تبوظ.
مثال بسيط: لو عندك some text
ممكن يتحول بـ Base64 إلى: c29tZSB0ZXh0
———
✅ ثالثًا: الـ Encryption:
لو أنت عايز تبعت داتا سرية لحد، ومش عايز أي حد في النص يفهمها.
هتعمل لها تشفير باستخدام مفتاح (Key)، والمستلم اللي معاه المفتاح يقدر يفكها.
📌 المهم هنا:
- العملية دي Two Way، بس لازم المفتاح.
- لو المفتاح اتسرّب أو ضاع، أي حد يقدر يفك البيانات.
- بتستخدمها في إرسال معلومات حساسة زي بطاقات الدفع أو بيانات المستخدمين.
فيه نوعين من الـ Encryption:
- الـ Symmetric: نفس المفتاح بيشفّر ويفك (زي AES).
- الـ Asymmetric: مفتاحين، واحد بيشفّر (public) والتاني بيفك (private) – زي اللي بيستخدم في HTTPS.
#backend
5August 4, 2026 941 1 11