السلام عليكم
ماهو مبدأعمل خوارزمية MD5 وهل هي تقوم بالتشفير ام حساب ؟ وشكرا مقدما
السلام عليكم
ماهو مبدأعمل خوارزمية MD5 وهل هي تقوم بالتشفير ام حساب ؟ وشكرا مقدما
مرحبا
طبعا السؤال ما ممنوع بالرسائل، بس الجواب ممنوع بالرسائل هه .. يعني لازم الإجابة تكون بقسم اسئلة وإجابات علمود الناس تستفيد
خوارزمية MD5، و شبيهتها بالعمل الخوارزمية اللي اسمها SHA1 بالحقيقة ما تستخدم للتشفير ..و إنما هي خوارزمية اختزال (Hashing) ، الفرق بين التشفير (encryption) و الاختزال (Hashing) أنه التشفير يمكنك من إسترجاع النص الأصلي أو المعلومة الأصلية، بينما الإختزال ما تكدر تستفاد منه باسترجاع المعلومة الأصلية، بس مجرد يوفرلك (نص اختزالي) للنص الأصلي يكون فريد و خاص بالنص الاصلي
الفكرة، هي توليد نص (او رمز) من النص الاصلي باستخدام خوارزمية MD5 عند المرسل، بحيث يكون قابل للمطابقة عند الاتباع نفس الخوارمية عند المستلم، بحيث يتحقق المستلم إنه المرسل عنده نفس المعلومة أو (النص)
مثال على الـ Hash باستخدام خوارزمية MD5، التعامل مع كلمات المرور بالمنتدى
عندما يقوم المستخدم بإنشاء كلمة مرور جديدة، يتم تطبيق خوارزمية MD5 على هذه الكلمة و توليد النص الاختزالي (ذو الـ 16 رمز) من كلمة المرور و خزنها في قاعدة البيانات، عندما يقوم المستخدم بمحاولة تسجيل دخوله في المنتدى في المرات اللاحقة، تقوم الصفحة بتوليد الـ Hash من كلمة المرور التي كتبها المستخدم عند تسجيل دخوله، و ترسلها إلى السيرفر، يقوم السيرفر عندها بمحاولة مطابقة الـ Hash المستلم ، مع الـ Hash المخزون لديه، فإذا تطابق معناها إن المستخدم قد كتب كلمة مرور صحيحة، و إذا لم يتطابق فمعناها إن المستخدم كتب كلمة مرور خاطئة
الفائدة من هذه ، إنه حتى لو لم يكن الإتصال مشفر بين متصفح المستخدم مرورا بالوايرليس ومزود خدمة الانترنت و و و و وصولا إلى سيرفر في دولة بعيدة، فإننا لا ننقل كلمة المرور الاصلية بحيث تكون عرضة للكشف (لأنها ترسل على شكل Plain Text في طريقها) ، بل ننقل نصها الاختزالي الذي لا يمكن الاستفادة منه لاسترجاع كلمة المرور، بل فقط عندما تصل للسيرفر يقوم بمطابقتها مع النص الاختزالي الذي لديه و لكي يقوم بتسجيل دخول المستخدم
فائدة أخرى لخوارزمية MD5 ليس فقط الأمنية، و إنما ايضا التحقق من وصول (كمية هائلة من البيانات) سليمة من المرسل إلى المستخدم، بحيث نعرف إنه لم يفقد منها (و لا رمز و لا Byte واحد) حيث يقوم المرسل بتطبيق الخوارزمية على البيانات التي لديه، ثم يرسل البيانات نفسها، و يرسل معها النص الاختزالي الخاص بتلك البيانات، و يقوم المستلم بتطبيق نفس الخوارزمية على البيانات ، و يقارن نتيجة الاختزال مع نص الاختزال الذي أرسله إليه المرسل، فإذا تمت المطابقة فهذا يعني إن البيانات لم يفقد منها أي جزء ، مثال على هذا محاول تحميل الملفات الكبيرة من بعض المواقع، يقوم الموقع بكتابة نتيجة خوارزمية MD5 على الملف ويعرضه في الموقع، ليمكن المستخدم من إجراء الفحص على الملف عند اكتمال تنزيله برامج تطبق هذه الخوارمية على الملفات، لاحظ صفحة تحميل قاعدة بيانات MySQL
http://dev.mysql.com/downloads/installer/
نشاهد أسفل زر التحميل، يعرض الموقع النص الاختزالي لملف تنصيب قاعدة البيانات
هذا برنامج رفعته لفحص الخوارزمية و تطبيقها على الملفات.. ، فد برنامج مرتب و حلو و يشتغل بدون تنصيب
WinMD5.zip
و هذا موقع بيه أداة تحسب الـ MD5 لأي نص تخلليه بحقل البيانات (يعني مو عل ملفات، وإنما على النصوص)
http://md5-hash-online.waraxe.us/
إذا أردنا أن نشفر (ليكون بإمكاننا استرجاع النص لاحقا) .. ربما علينا إستخدام إحدى خوارزميات التشفير مثل تلك الخوارزميات الشهيرة المعروفة باسم OpenSSL
تحياتي
شكرا جزيلا اخي سامر على التوضيح طبعا الخوارزميات عدة انواع والنوع المستخدم لمطابقة كلمة المرور هو من نوع prefix searching اليس كذلك ؟اذن خوارزمية MD5هي من هذا النوع اي خوارزمية بحث او حساب تواقيع البيانات بعبارة اصح ؟ ولا اريد تشفير برنامج بها انما اريد تحليل طريقة عملها في البرامج وهذا البرنامج ممكن ينفع في هذه الحالة.
مرحبا
prefix searching يعني إمكانية البحث عن نص معين من خلال الأحرف الأولى منه، يعني ما إله علاقة بموضوعنا، و مطابقة كلمات المرور تصير بالطريقة الاعتيادية (حرف مقابل حرف) أما من خلال كلمة المرور نفسها أو الـ Hash مالتها، و خوارزمية MD5 مجرد طريقة رياضية تولد (نص) بطول 16 رمز من البيانات اللي تم إدخالها، بالنسبة للمعادلات الرياضية الخاصة بتوليدها تكدرين تشوفين هذا الرابط:
http://en.wikipedia.org/wiki/MD5#Algorithm
بالـ PHP اذا ردتي تطبيق الـ MD5 على نص مجرد تستدعين الدالة:
بالـ Javascript هذا سكربت يوفر بالنهاية دالة اسمها md5 مثل PHPكود PHP:
echo md5($datastring);
http://www.myersdaily.org/joseph/javascript/md5.js
بالـ MATLBAL إسمها الدالة mMD5
بالفيجوال بيسك دوت نت، برنامج مثل هذا يوفر الخوارزمية:
http://www.nonhostile.com/howto-calc...ing-vb-net.asp
و بالـ Linux ايعاز مثل هذا
echo -n "Your-String-Here" | md5sum
تحياتي
شكرا جزيلا لمن يريد الاطلاع اكثر
http://www.kleinschmidt.com/edi/md5.htm
و
http://ar.wikipedia.org/wiki/دالة_هاش_تشفيرية