MD5 چیست؟ (تعریف علمی)
الگوریتم Message-Digest 5 یا همان MD5، یک تابع هش رمزنگاری شده است که هر ورودی با طول دلخواه را میگیرد و یک خروجی ثابت ۱۲۸ بیتی (که معمولاً به صورت یک عدد ۳۲ رقمی هگزادسیمال نمایش داده میشود) تولید میکند. این الگوریتم توسط پروفسور رونالد ریوست در سال ۱۹۹۱ طراحی شد. ویژگی اصلی MD5 این است که حتی تغییر یک کاراکتر کوچک در ورودی، باعث تغییر کامل خروجی میشود (اثری که به آن Avalanche Effect یا اثر بهمنی میگویند).
ساختار خروجی
خروجی MD5 همیشه ۳۲ کاراکتر است و از اعداد ۰ تا ۹ و حروف a تا f تشکیل شده است.
کاربردهای عملی
در سیستمهای قدیمی برای ذخیره رمز عبور استفاده میشد (امروزه ناامن است).
بررسی اینکه فایل دانلود شده سالم است و توسط هکرها یا نویز شبکه تغییر نکرده است.
تولید یک ID کوتاه و ثابت برای متنهای طولانی یا URL ها در دیتابیس.
۵ اشتباه مرگبار درباره MD5
- استفاده از MD5 خالی برای ذخیره رمز عبور (باید حتما Salt اضافه شود).
- تصور اینکه MD5 رمزنگاری است (Encryption نیست، Hashing است و کلید ندارد).
- باور به اینکه MD5 غیرقابل شکستن است (تصادم یا Collision در آن یافت شده است).
- استفاده برای امضای دیجیتال اسناد حساس امنیتی (بهتر است از SHA-256 استفاده شود).
- تلاش برای Decrypt کردن (هش یک طرفه است، فقط میتوان Brute-force کرد).
