الفرق بين Encoding و Encryption و Hashing و Obfuscation

السلام عليكم

الكثير من الناس يخلط بين هذه المفاهيم الأربعة..والبعض يظن أن لها نفس المعنى...

Encryption

الغرض من التشفير هو تحويل البيانات بإستعمال خوارزمية معينة (تسمى cipher) بهدف الحفاظ على سريتها من الآخرين بإستثناء الأشخاص الذين لديهم المفتاح السري. وينتج عن هذه العملية نص مشفر يسمى ciphertext.

لفك التشفير يتعين على الشخص أن يعرف المفتاح والخوارزمية المستعملة

بعض خوارزميات التشفير المشهورة: AES, RSA, Blowfish, Ceasar cipher

Encoding

الترميز يقوم بتحويل البيانات إلى صيغة أخرى بإستخدام نظام متاح للعامة بحيث يمكن بسهولة عكس العملية وفك الترميز. والترميز لا يتطلب معرفة المفتاح على عكس التشفير، الشيء الوحيد الذي عليك معرفته هو الخوارزمية المستعلمة في الترميز

أمثلة على بعض خوارزميات الترميز: base64, url encoding, MP3 encoding, WAV encoding....الخ

Hashing

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

  • نصين مختلفين سينتجان هاشين مختلفين تماما وحتى لو الإختلاف في أبسط شيء.

  • يستحيل عكس العملية والحصول على النص الأصلي إنطلاقا من المخرج.

  • أي تغيير بسيط في المدخلات المعطاة سينتج تغير كبير في الهاش المنتج.

بعض الخوارزميات المشهورة: MD5, SHA, CRC

Obfuscation

الغرض من الـObfuscation هو جعل الشيء صعبا الفهم وذلك بغرض حمايته من النسخ.