تشفير MD5 على الإنترنت
فيتشفير MD5 على الإنترنت:
تساعدك أداة التشفير عبر الإنترنت MD5 هذه على تشفير سلسلة إدخال في سلسلة MD5 ثابتة 128 بت.
لماذا تحتاج MD5؟
إن خوارزمية هاش مثل MD5 هي خوارزمية أحادية الاتجاه ، مما يعني أنها غير قابلة للإعادة ، حيث تجعل هذه الخاصية MD5 مفيدة جدًا في عمل "بصمات الأصابع" على الملف ، ويمكن أن تثبت قيمة الملف MD5 أن الملف لم يتم تعديله. تستخدم لحماية كلمة المرور. "الملح" المخزن في قاعدة بيانات موقع الويب والقيمة النهائية لكلمة المرور الأصلية لا يمكن التراجع عنها ، وهذا يعني أنه حتى في حالة اختراق قاعدة البيانات ، لن يتمكن الهاكر من استعادة كلمة المرور الخاصة بك.
هل MD5 آمن ، هل يجب علي الاستمرار في استخدامه؟
النوع الأول من الهجوم يسمى (rainbow tables)
، وهي قاعدة بيانات كبيرة جدًا ، بما في ذلك سلسلة قصيرة بقيمة MD5 المطابقة. على سبيل المثال ، عندما تنظر إلى جدول قوس قزح "FC5E038D38A57032085441E7FE7010B0"
، يمكنك العثور على أصله السلسلة هي "helloworld". إذا كانت السلسلة الأصلية قصيرة ، يمكن لجدول قوس قزح فك تشفير MD5 بنجاح.
يستند الهجوم الثاني على الخوارزمية الأساسية لـ MD5 ، وفي السنوات الأخيرة ، تحولت المزيد والمزيد من المواقع الإلكترونية إلى SHA256 أو SHA512 ، ومع ذلك ، لا يزال العديد من المواقع تستخدم MD5 ، والذي ترك خطرًا كبيرًا خفيًا على أمان الإنترنت.
المزيد من الروابط إلى MD5:
RFC 1321: https://www.ietf.org/rfc/rfc1321.txt
MD5 في بيثون (هشليب): https://docs.python.org/3/library/hashlib.html
MD5 في جافا: https://docs.oracle.com/javase/7/docs/api/java/security/MessageDigest.html
MD5 في PHP: http://php.net/manual/en/function.md5.php
حساب تجزئة MD5 لسلسلة في Python (مع حزمة hashlib):
import hashlib def md5_generator(str): m = hashlib.md5() m.update(str.encode()) return m.hexdigest()
حساب تجزئة MD5 لسلسلة في Java (مع حزمة MessageDigest):
import java.math.BigInteger; import java.security.MessageDigest; public String generate(String str){ MessageDigest md = MessageDigest.getInstance("MD5"); md.update(str.getBytes()); byte[] digest = md.digest(); String result = new BigInteger(1, digest).toString(16).toUpperCase(); return result; }
حساب تجزئة MD5 لملف في Linux (مع OpenSSL):
root@instance-1:/var/log/apache2# openssl dgst -md5 access.log MD5(access.log)= 742f23518e684f3562ffc9f983f190ba