MD5 हैश
मुफ्त ऑनलाइन MD5 हैश टूल। टेक्स्ट/फ़ाइल/बैच/HMAC-MD5 मोड, UTF-8/Latin1, बड़े अक्षर, 8-वर्ण समूहन। ⚠️ MD5 समझौता किया गया है — पासवर्ड संग्रहण के लिए उपयोग न करें।
मुफ्त ऑनलाइन MD5 हैश टूल। टेक्स्ट/फ़ाइल/बैच/HMAC-MD5 मोड, UTF-8/Latin1, बड़े अक्षर, 8-वर्ण समूहन। ⚠️ MD5 समझौता किया गया है — पासवर्ड संग्रहण के लिए उपयोग न करें।
MD5 आमतौर पर फ़ाइल अखंडता जांच (जैसे, डाउनलोड सत्यापन), तेज़ डाइजेस्ट जनरेशन, लीगेसी सिस्टम संगतता, कैश कुंजियों और गैर-सुरक्षा परिदृश्यों में डेटा डुप्लिकेशन हटाने के लिए उपयोग किया जाता है। MD5 128 बिट (32 हेक्साडेसिमल वर्ण) उत्पन्न करता है और अत्यधिक तेज़ है, गैर-महत्वपूर्ण सत्यापन परिदृश्यों के लिए उपयुक्त है।
MD5 128 बिट (32 hex) उत्पन्न करता है, अत्यधिक तेज़ लेकिन समझौता किया गया; SHA-256 256 बिट (64 hex) उत्पन्न करता है, धीमा लेकिन व्यावहारिक टक्कर हमले नहीं हैं और महत्वपूर्ण अनुप्रयोगों के लिए पसंद किया जाता है।
SHA-256 टूलMD5 अत्यधिक तेज़ है — आधुनिक GPU प्रति सेकंड अरबों हैश की गणना कर सकते हैं, और इंद्रधनुष तालिकाएँ सामान्य पासवर्ड को तुरंत तोड़ देती हैं। पासवर्ड संग्रहण के लिए bcrypt, scrypt या Argon2 का उपयोग करें।
पासवर्ड जनरेटरसुरक्षा के लिए बिल्कुल नहीं (डिजिटल हस्ताक्षर, पासवर्ड, TLS)। लेकिन गैर-सुरक्षा अनुप्रयोगों के लिए (फ़ाइल भ्रष्टाचार जांच, डुप्लिकेशन हटाना, कैश कुंजियाँ) MD5 अभी भी उपयुक्त है, क्योंकि हमलावरों को टक्कर बनाने का कोई प्रोत्साहन नहीं है।
MD5 एक एकतरफा फ़ंक्शन है और गणितीय रूप से उलटा नहीं जा सकता है, लेकिन इंद्रधनुष तालिकाएँ और ब्रूट फोर्स कमजोर पासवर्ड को सेकंडों में पुनर्प्राप्त कर सकते हैं। यही कारण है कि MD5 का उपयोग कभी भी पासवर्ड संग्रहण के लिए नहीं किया जाना चाहिए।
नहीं। टूल खंडित वृद्धिशील पठन का उपयोग करता है — फ़ाइलें पूरी तरह से मेमोरी में लोड नहीं की जाती हैं, इसलिए यहां तक कि मल्टी-गीगाबाइट फ़ाइलें भी एक उत्तरदायी इंटरफ़ेस के साथ सुचारू रूप से संसाधित की जाती हैं।
HMAC-MD5 एक कुंजीयुक्त हैश है जिसे गुप्त कुंजी की आवश्यकता होती है। हालांकि सादा MD5 समझौता किया गया है, HMAC-MD5 तब सुरक्षित रहता है जब कुंजी अज्ञात हो (हालांकि HMAC-SHA256 में माइग्रेशन की सिफारिश की जाती है)।
HMAC जनरेटरMD5 (संदेश-डाइजेस्ट एल्गोरिदम 5) रोनाल्ड रिवेस्ट द्वारा 1991 में डिज़ाइन किया गया एक 128-बिट हैश फ़ंक्शन है (RFC 1321), जो मनमाने इनपुट से एक निश्चित 32-वर्ण हेक्साडेसिमल डाइजेस्ट उत्पन्न करता है। कभी डिजिटल हस्ताक्षर, प्रमाणपत्र सत्यापन और पासवर्ड संग्रहण के लिए व्यापक रूप से उपयोग किया जाता था, MD5 2004 में वांग आदि के टक्कर हमले से समझौता किया गया था, और फ्लेम मैलवेयर ने 2008 में एक विश्वसनीय CA प्रमाणपत्र को जाली बनाने के लिए MD5 टक्करों का दुरुपयोग किया था।
**सुरक्षा स्थिति**: NIST ने SP 800-131A (2011) में डिजिटल हस्ताक्षरों के लिए MD5 को आधिकारिक रूप से अस्वीकार कर दिया। हालांकि, MD5 गैर-सुरक्षा परिदृश्यों के लिए उपयोगी बना हुआ है: यादृच्छिक भ्रष्टाचार के खिलाफ फ़ाइल अखंडता जांच, डेटा डुप्लिकेशन हटाना और कैश कुंजियाँ। मुख्य प्रश्न: क्या एक हमलावर को टक्कर बनाने से लाभ होगा? यदि नहीं, तो MD5 की गति एक लाभ है।
**पासवर्ड संग्रहण के लिए MD5 का कभी भी उपयोग न करें**: MD5 अत्यधिक तेज़ है (GPU पर अरबों हैश/सेकंड), जो सामान्य पासवर्ड को ब्रूट फोर्स से तुरंत तोड़ने की अनुमति देता है। पासवर्ड संग्रहण को bcrypt, scrypt या Argon2 का उपयोग करना चाहिए — समायोज्य लागत कारकों के साथ धीमे हैश जो ब्रूट फोर्स को अव्यावहारिक बनाते हैं।
**HMAC-MD5 अभी भी सुरक्षित है**: हालांकि सादा MD5 समझौता किया गया है, HMAC-MD5 (कुंजी के साथ हैश-आधारित संदेश प्रमाणीकरण कोड) तब सुरक्षित रहता है जब कुंजी अज्ञात हो, क्योंकि HMAC निर्माण सीधे अंतर्निहित हैश के टक्कर प्रतिरोध पर निर्भर नहीं करता है। फिर भी, HMAC-SHA256 में माइग्रेशन की सिफारिश की जाती है।
यह टूल शुद्ध जावास्क्रिप्ट MD5 कार्यान्वयन का उपयोग करता है (Web Crypto API अब MD5 का समर्थन नहीं करता है)। सभी गणनाएँ आपके ब्राउज़र में स्थानीय रूप से की जाती हैं — फ़ाइलें खंडित वृद्धिशील पठन का उपयोग करती हैं और कभी भी सर्वर पर अपलोड नहीं की जाती हैं।
| एल्गोरिदम | आउटपुट बिट | Hex लंबाई | सुरक्षा | गति | अनुशंसित उपयोग |
|---|---|---|---|---|---|
MD5 | 128 बिट | 32 वर्ण | ❌ समझौता किया गया (टक्कर/प्रीइमेज) | अत्यधिक तेज़ | फ़ाइल चेकसम, डुप्लिकेशन हटाना, कैश कुंजियाँ |
SHA-1 | 160 बिट | 40 वर्ण | ❌ टक्कर (2017) | तेज़ | Git, लीगेसी सिस्टम संगतता |
SHA-256 | 256 बिट | 64 वर्ण | ✅ सुरक्षित | मध्यम | डिजिटल हस्ताक्षर, प्रमाणपत्र, ब्लॉकचेन |
SHA-512 | 512 बिट | 128 वर्ण | ✅ सुरक्षित | तेज़ (64-बिट) | उच्च सुरक्षा परिदृश्य, कुंजी व्युत्पत्ति |
bcrypt | - | 60 वर्ण | ✅ पासवर्ड-विशिष्ट | धीमा (समायोज्य) | पासवर्ड संग्रहण |
| वर्ष | घटना | प्रभाव |
|---|---|---|
1991 | रॉन रिवेस्ट ने MD5 डिज़ाइन किया (RFC 1321) | MD4 को प्रतिस्थापित करता है और मानक हैश एल्गोरिदम बनता है |
1996 | MD5 में पहली छद्म-टक्कर दोष की खोज | शैक्षणिक समुदाय चिंता व्यक्त करता है |
2004 | वांग शियाओयुन की टीम ने MD5 टक्कर हमले का प्रदर्शन किया | MD5 डिजिटल हस्ताक्षर सुरक्षा पूरी तरह से टूट गई |
2008 | फ्लेम मैलवेयर ने MD5 टक्कर के माध्यम से CA प्रमाणपत्र जाली बनाया | NIST ने डिजिटल हस्ताक्षरों के लिए MD5 को आधिकारिक रूप से अस्वीकार कर दिया |
2011 | NIST SP 800-131A ने सुरक्षा उद्देश्यों के लिए MD5 को आधिकारिक रूप से प्रतिबंधित किया | अमेरिकी सरकारी सिस्टम MD5 को चरणबद्ध रूप से हटाते हैं |
2024 | नया प्रीइमेज हमला पेपर प्रकाशित | MD5 की अंतिम रक्षा पंक्ति (प्रीइमेज प्रतिरोध) टूट गई |
// Note: Web Crypto API does NOT support MD5 (deprecated)
// Use SHA-256 instead for new projects
async function sha256(message) {
const msgBuffer = new TextEncoder().encode(message);
const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
return Array.from(new Uint8Array(hashBuffer)).map(b => b.toString(16).padStart(2,'0')).join('');
}
sha256('Hello World').then(console.log);
// MD5 in Node.js using crypto module
const crypto = require('crypto');
const md5 = crypto.createHash('md5').update('Hello World').digest('hex');
console.log(md5); // b10a8db164e0754105b7a99be72e3fe5import hashlib
text = 'Hello World'
md5_hash = hashlib.md5(text.encode('utf-8')).hexdigest()
print(md5_hash) # b10a8db164e0754105b7a99be72e3fe5
# File MD5 (chunked for large files)
def md5_file(filepath, chunk_size=8192):
md5 = hashlib.md5()
with open(filepath, 'rb') as f:
while chunk := f.read(chunk_size):
md5.update(chunk)
return md5.hexdigest()
# HMAC-MD5
import hmac
hmac_md5 = hmac.new(b'secret-key', b'Hello World', hashlib.md5).hexdigest()
print(hmac_md5)import java.security.MessageDigest;
import java.nio.charset.StandardCharsets;
public class MD5Example {
public static String md5(String input) throws Exception {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] hash = md.digest(input.getBytes(StandardCharsets.UTF_8));
StringBuilder sb = new StringBuilder();
for (byte b : hash) sb.append(String.format("%02x", b));
return sb.toString();
}
public static void main(String[] args) throws Exception {
System.out.println(md5("Hello World"));
// b10a8db164e0754105b7a99be72e3fe5
}
}
// Note: Use SHA-256 for new code: MessageDigest.getInstance("SHA-256")