تشفير MD5 على الإنترنت


UpperCase


فيتشفير MD5 على الإنترنت:

تساعدك أداة التشفير عبر الإنترنت MD5 هذه على تشفير سلسلة إدخال في سلسلة MD5 ثابتة 128 بت.

comic md5

لماذا تحتاج 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