الفرق بين التشفير والتجزئة (Encryption vs Hashing) في أمان PHP

تم النشر | بواسطة: kareem | Apr 20, 2026 | منذ 14 ساعة و46 دقيقة |
برمجة
| عدد المشاهدات: 30
الفرق بين التشفير والتجزئة (Encryption vs Hashing) في أمان PHP

متى تستخدم كل منهما لحماية كلمات المرور والبيانات الحساسة؟

مقدمة

أمان البيانات لم يعد خيارًا، بل ضرورة في أي تطبيق ويب. من أكثر المفاهيم التي يحدث حولها خلط بين المطورين هي:
التشفير (Encryption) والتجزئة (Hashing).

كثير من المشاريع تقع في أخطاء خطيرة مثل:

  • تخزين كلمات المرور بطريقة قابلة لفكها
  • استخدام نفس التقنية لكل أنواع البيانات
  • عدم فهم الفرق بين “إخفاء” البيانات و”حمايتها”

في هذا المقال، سنوضح الفرق بين التشفير والتجزئة بشكل عملي، ونشرح متى تستخدم كل واحدة، خاصة في سياق PHP.


ما هو التشفير (Encryption)؟

✔️ التعريف

التشفير هو عملية تحويل البيانات إلى شكل غير مفهوم، لكن يمكن إرجاعها إلى شكلها الأصلي باستخدام مفتاح (Key).

✔️ الفكرة الأساسية:

  • بيانات → مشفرة
  • مفتاح → يفك التشفير

✔️ مثال بسيط:

  • نص عادي: "123456"
  • يتم تشفيره → "xYz@89#..."
  • باستخدام المفتاح → يرجع "123456"

✔️ أنواع التشفير:

1. Symmetric Encryption

  • نفس المفتاح للتشفير وفك التشفير

2. Asymmetric Encryption

  • مفتاح عام + مفتاح خاص

ما هي التجزئة (Hashing)؟

✔️ التعريف

التجزئة هي عملية تحويل البيانات إلى قيمة ثابتة (Hash) لا يمكن استرجاع البيانات الأصلية منها.

✔️ الفكرة الأساسية:

  • بيانات → Hash
  • لا يمكن الرجوع للأصل

✔️ مثال:

  • كلمة مرور: "123456"
  • تتحول إلى: "e10adc3949..."

لا يمكنك معرفة الكلمة الأصلية من الـ Hash.


الفرق الأساسي بين Encryption و Hashing

العنصر Encryption (تشفير) Hashing (تجزئة)
إمكانية الاسترجاع نعم لا
الهدف حماية البيانات أثناء النقل حماية البيانات من التسريب
استخدام مفتاح نعم لا (في الغالب)
الطول متغير ثابت
الاستخدام الشائع البيانات الحساسة كلمات المرور

متى تستخدم Hashing؟

✔️ لحماية كلمات المرور

هذا هو الاستخدام الأهم.

لماذا؟

  • لا تحتاج معرفة كلمة المرور الأصلية
  • فقط تحتاج التحقق منها

✔️ كيف يتم التحقق؟

  1. المستخدم يدخل كلمة المرور
  2. يتم تحويلها إلى Hash
  3. يتم مقارنتها مع المخزن

✔️ أفضل خوارزميات:

  • bcrypt
  • Argon2

متى تستخدم Encryption؟

✔️ لحماية البيانات القابلة للاسترجاع

مثل:

  • أرقام البطاقات البنكية
  • بيانات حساسة
  • معلومات المستخدم

✔️ لماذا؟

لأنك تحتاج:

  • قراءة البيانات لاحقًا
  • استخدامها داخل النظام

مثال عملي مهم

❌ خطأ شائع:

تشفير كلمات المرور بدل تجزئتها

المشكلة:

  • يمكن فك التشفير
  • خطر كبير في حالة الاختراق

✔️ الحل الصحيح:

  • استخدم Hashing لكلمات المرور
  • استخدم Encryption للبيانات الحساسة

مقارنة عملية

الحالة الحل الصحيح
كلمة مرور Hashing
رقم بطاقة Encryption
API Keys Encryption
بيانات تسجيل الدخول Hashing

مفهوم مهم: Salt في Hashing

✔️ ما هو Salt؟

قيمة عشوائية يتم إضافتها لكلمة المرور قبل التجزئة.

✔️ الفائدة:

  • منع هجمات Rainbow Table
  • زيادة الأمان

هل Hashing آمن 100%؟

لا يوجد أمان 100%، لكن:

  • باستخدام خوارزميات قوية
  • مع Salt
  • يصبح آمن جدًا

أخطاء شائعة يجب تجنبها

  • ❌ استخدام MD5 أو SHA1 لكلمات المرور
  • ❌ تخزين كلمات المرور كنص عادي
  • ❌ استخدام نفس المفتاح لكل شيء
  • ❌ عدم حماية مفاتيح التشفير
  • ❌ الخلط بين Hashing و Encryption

أفضل الممارسات في PHP

✔️ لكلمات المرور:

  • استخدم دوال hashing الحديثة
  • لا تخزن كلمة المرور أبدًا كنص

✔️ للبيانات الحساسة:

  • استخدم تشفير قوي
  • خزّن المفاتيح بشكل آمن

✔️ بشكل عام:

  • طبّق مبدأ Least Privilege
  • راقب النظام باستمرار

مثال من الحياة الواقعية

Hashing:

مثل بصمة الإصبع 👆

  • لا يمكن استرجاع الإصبع من البصمة

Encryption:

مثل صندوق مقفول 🔐

  • يمكن فتحه بالمفتاح

الأسئلة الشائعة (FAQ)

1. هل يمكن فك Hash؟

لا، Hashing مصمم ليكون غير قابل للعكس.


2. هل يمكن استخدام Encryption لكلمات المرور؟

لا، الأفضل استخدام Hashing لأنه أكثر أمانًا.


3. ما أفضل خوارزمية لكلمات المرور؟

bcrypt أو Argon2.


4. هل MD5 آمن؟

لا، يعتبر ضعيف وغير آمن.


5. هل يمكن استخدام الاثنين معًا؟

نعم، لكن كل واحد له استخدام مختلف.

خلاصة

الفرق بين التشفير والتجزئة ليس بسيطًا، لكنه أساسي جدًا في أمان التطبيقات.

  • Hashing: لحماية كلمات المرور
  • Encryption: لحماية البيانات التي تحتاج استرجاعها

إذا استخدمت كل واحدة في مكانها الصحيح، ستبني نظامًا آمنًا يصعب اختراقه.

أما إذا خلطت بينهما… فقد تفتح بابًا كبيرًا للمخاطر.


🚀 ابدأ رحلتك مع كرياتيفو
وخد أول خطوة حقيقية نحو مستقبلك في البرمجة
📱 ابعتلنا علي واتساب
💬 ابعتلنا علي فيسبوك

الكلمات المفتاحية

Encryption Hashing PHP security تشفير البيانات تجزئة البيانات bcrypt argon2 حماية كلمات المرور web security backend security secure coding data protection PHP best practices hashing vs encryption حماية المستخدم database security API security cryptography basics أمن التطبيقات secure login

مقالات مشابهة

برمجة

ما هو الـ API وكيف يستطيع PHP بناءه؟ دليل عملي للمطورين

تعرف على ما هو API وكيف يعمل، وتعلم كيفية بناء API باستخدام PHP بأسلوب بسيط وعملي. دليل شامل للمطورين مع أمثلة واقعية.

18 Apr, 2026
تفاصيل المقال
برمجة

كيف تؤثر إصدارات PHP المختلفة على موقعك؟ — دروس من PHP 5.6 إلى PHP 8.3

تعرف على تأثير إصدارات PHP المختلفة على أداء وأمان موقعك، ولماذا يعد التحديث من PHP 5.6 إلى PHP 8.3 خطوة ضرورية لأي مشروع حديث.

20 Apr, 2026
تفاصيل المقال
برمجة

ما الفرق بين GET و POST ومتى تستخدم كل منهما؟

تعرف على الفرق بين GET و POST في HTTP ومتى تستخدم كل منهما، مع شرح مبسط وأمثلة عملية تساعدك على بناء تطبيقات ويب احترافية وآمنة.

16 Apr, 2026
تفاصيل المقال
برمجة

كيف يتعامل PHP مع البيانات القادمة من المستخدم بأمان؟ دليل عملي لمطوري الويب

تعرف على كيفية التعامل مع بيانات المستخدم في PHP بأمان، مع شرح عملي لأهم الثغرات مثل SQL Injection و XSS وطرق الحماية منها لبناء تطبيقات ويب آمنة.

19 Apr, 2026
تفاصيل المقال
البرمجة

الفرق بين السيرفرات التي تعمل بـ PHP وغيرها — Apache vs Nginx كيف يؤثر نوع السيرفر على أداء تطبيقك ؟

تعرف على الفرق بين Apache وNginx في تشغيل تطبيقات PHP، وكيف يؤثر اختيار السيرفر على الأداء، السرعة، واستهلاك الموارد في موقعك. دليل عملي للمطورين.

19 Apr, 2026
تفاصيل المقال
برمجة

كيف يعمل PHP خلف الكواليس — رحلة طلب HTTP من المتصفح إلى السيرفر

تعرف على كيف يعمل PHP خلف الكواليس من خلال رحلة طلب HTTP من المتصفح إلى السيرفر، مع شرح مبسط لدورة حياة الطلب وبناء الصفحات الديناميكية.

16 Apr, 2026
تفاصيل المقال