MD5 हैश जनरेटर

टेक्स्ट, हेक्स बाइट या किसी फ़ाइल का 128-बिट MD5 डाइजेस्ट निकालें। टाइप करते ही हैश अपडेट होता है, और “इससे तुलना करें” फ़ील्ड बताता है कि वह आपके अपेक्षित चेकसम से मेल खाता है या नहीं।

सभी एल्गोरिदम

पूरी तरह आपके ब्राउज़र में चलता है। कुछ भी अपलोड नहीं होता।

उपयोग कैसे करें

  1. टेक्स्ट टाइप या पेस्ट करें, बाइट दर्ज करने के लिए इनपुट को “हेक्स” पर करें, या किसी फ़ाइल के सटीक बाइट हैश करने के लिए “फ़ाइल खोलें” पर क्लिक करें।
  2. “टेक्स्ट एनकोडिंग” को UTF-8 पर ही रहने दें, जब तक कि मूल हैश किसी दूसरे कैरेक्टर सेट वाले टेक्स्ट से न बनाया गया हो।
  3. “आउटपुट प्रकार” में “hex (छोटे अक्षर)”, “HEX (बड़े अक्षर)” या “Base64” चुनें।
  4. किसी डाउनलोड की जाँच के लिए प्रकाशित MD5 को “इससे तुलना करें” फ़ील्ड में पेस्ट करें और देखें कि “मेल खाता है” दिखता है या नहीं।

MD5 क्या है?

MD5 (Message-Digest Algorithm 5) को Ronald Rivest ने डिज़ाइन किया था और यह 1992 में RFC 1321 के रूप में प्रकाशित हुआ। यह इनपुट को 512-बिट ब्लॉक में पढ़ता है और 128-बिट डाइजेस्ट बनाता है, जिसे आमतौर पर 32 हेक्साडेसिमल अक्षरों या 24 Base64 अक्षरों में लिखा जाता है। एक ही इनपुट से हमेशा एक ही डाइजेस्ट बनता है, और इनपुट का एक भी बिट बदलने पर आउटपुट के लगभग आधे बिट बदल जाते हैं।

हैशिंग एकतरफ़ा प्रक्रिया है: इसमें कोई कुंजी नहीं होती और MD5 हैश को “डिक्रिप्ट” करके वापस इनपुट पाने का कोई तरीक़ा नहीं है। जो साइटें MD5 को उलटने का दावा करती हैं, वे हैश को हैश किए गए शब्दों और लीक हुए पासवर्ड की विशाल तालिकाओं में खोजती हैं; इसीलिए किसी छोटे पासवर्ड का बिना सॉल्ट वाला MD5 अक्सर कुछ ही सेकंड में मिल जाता है।

क्या MD5 अब भी सुरक्षित है?

हमलावर के सामने नहीं। Xiaoyun Wang और उनके सहयोगियों ने 2004 में व्यावहारिक कॉलिज़न (टकराव) प्रकाशित किए: दो अलग-अलग इनपुट जिनका MD5 एक ही है। इसके बाद chosen-prefix कॉलिज़न आए: 2008 में शोधकर्ताओं ने ऐसे ही एक कॉलिज़न से नकली CA सर्टिफ़िकेट बनाया, और 2012 में Flame मैलवेयर ने इसी तरह के कॉलिज़न से एक जाली सर्टिफ़िकेट तैयार किया, जिससे उसका कोड Microsoft द्वारा साइन किया हुआ लगता था। आज एक साधारण लैपटॉप कुछ ही सेकंड में MD5 कॉलिज़न ढूँढ़ लेता है, और RFC 6151 के अनुसार जहाँ कॉलिज़न प्रतिरोध ज़रूरी हो, जैसे डिजिटल सिग्नेचर में, वहाँ MD5 अब स्वीकार्य नहीं है।

आकस्मिक नुकसान, जैसे अधूरा डाउनलोड या डिस्क पर पलटा हुआ कोई बिट, पकड़ने वाले चेकसम के रूप में MD5 अब भी ठीक है, और कैश कुंजियों या भरोसेमंद डेटा से डुप्लिकेट हटाने के लिए भी। जब फ़ाइल या उसका चेकसम किसी हमलावर से आ सकता हो, तो इसके बजाय SHA-256 का उपयोग करें।

हेक्स, Base64 और मेल न खाने वाले हैश

MD5 आमतौर पर हेक्स में लिखा जाता है, और md5sum भी यही आउटपुट देता है। कुछ प्रोटोकॉल इसके बजाय रॉ 16 बाइट को Base64 में भेजते हैं, उदाहरण के लिए HTTP Content-MD5 हेडर, जिसका उपयोग Amazon S3 जैसे क्लाउड स्टोरेज API करते हैं। Base64 आउटपुट चुनें, या किसी मौजूदा मान को हेक्स से Base64 से बदलें।

अगर आपका MD5 किसी दूसरे टूल से अलग है, तो इनपुट बाइट अलग हैं। आम कारण हैं: अंत में एक न्यूलाइन, Windows लाइन एंडिंग या कोई दूसरी टेक्स्ट एनकोडिंग। "café" UTF-8 में 5 बाइट का है लेकिन ISO-8859-1 में 4 बाइट का, इसलिए दोनों हैश में कोई समानता नहीं होती।

$ echo "hello" | md5sum      # "hello\n" को हैश करता है
b1946ac92492d2347c6235b4d2611184  -
$ printf 'hello' | md5sum    # "hello" को हैश करता है
5d41402abc4b2a76b9719d911017c592  -

कमांड लाइन और कोड में MD5

md5sum file.iso                          # Linux
md5 file.iso                             # macOS
certutil -hashfile file.iso MD5          # Windows
Get-FileHash file.iso -Algorithm MD5     # PowerShell

# Python
import hashlib
hashlib.md5('hello'.encode('utf-8')).hexdigest()

// Node.js
require('crypto').createHash('md5').update('hello', 'utf8').digest('hex')

ब्राउज़र में बने Web Crypto API में MD5 शामिल नहीं है, इसलिए यह पेज इसकी गणना आपके डिवाइस पर JavaScript में करता है; कुछ भी अपलोड नहीं होता। परिणाम के नीचे “सभी एल्गोरिदम” तालिका उसी इनपुट के SHA-1, SHA-256, SHA-384, SHA-512, CRC-32 और CRC-32C दिखाती है।

उदाहरण

इनपुट (UTF-8)MD5
Hello, World!65a8e27d8879283831b664bd8b7f0ad4
Base64.is2e3c0e8b828164a8db7f62146ca87e14
你好7eca689f0d3389d9dea66ae112e5cfd7

अक्सर पूछे जाने वाले प्रश्न

क्या MD5 हैश को डिक्रिप्ट किया जा सकता है?
नहीं। MD5 एक एकतरफ़ा हैश फ़ंक्शन है, एन्क्रिप्शन नहीं, इसलिए डिक्रिप्ट करने के लिए कुछ है ही नहीं; कोई “MD5 डिक्रिप्टर” केवल वही इनपुट लौटा सकता है जो पहले से उसकी तालिकाओं में मौजूद हो। अगर आपको बाद में मूल डेटा वापस चाहिए, तो उसे एन्क्रिप्ट करें, या अगर उसे गोपनीय नहीं रखना है, तो उसे Base64 में एनकोड करें, जिसे पूरी तरह वापस बदला जा सकता है।
क्या किसी डाउनलोड की जाँच के लिए MD5 काफ़ी है?

यह आकस्मिक ख़राबी को भरोसेमंद ढंग से पकड़ लेता है। लेकिन कॉलिज़न बनाना सस्ता है, इसलिए पहले से फ़ाइल तैयार करने वाला कोई व्यक्ति उसी MD5 वाली एक दूसरी, अलग फ़ाइल बना सकता है। सुरक्षा से जुड़े डाउनलोड के लिए किसी भरोसेमंद स्रोत से मिला SHA-256 हैश या सिग्नेचर जाँचें।

MD5 हैश कितना लंबा होता है?
128 बिट, यानी 16 बाइट: हेक्स में 32 अक्षर, या Base64 में 24 अक्षर जिनके अंत में == होता है। 32 अक्षरों की हेक्स स्ट्रिंग MD4 या NTLM हैश भी हो सकती है; हैश आइडेंटिफ़ायर संभावित एल्गोरिदम की सूची देता है।
क्या बड़ी फ़ाइल का MD5 निकाला जा सकता है?
हाँ। फ़ाइल खोलें, और उसके बाइट बिना अपलोड हुए आपके ब्राउज़र में ही हैश हो जाते हैं। सीमा उतनी ही है जितनी मेमोरी आपका ब्राउज़र उपयोग कर सकता है, इसलिए कई गीगाबाइट की फ़ाइलों को md5sum या certutil से हैश करना बेहतर है।
क्या पासवर्ड को MD5 के रूप में स्टोर करना चाहिए?
नहीं। MD5 को तेज़ चलने के लिए डिज़ाइन किया गया है, इसलिए एक अकेला GPU हर सेकंड अरबों अनुमान आज़मा लेता है। पासवर्ड को Argon2id, scrypt, bcrypt या PBKDF2 से स्टोर करें, जो सॉल्ट जोड़ते हैं और जान-बूझकर धीमे होते हैं। शुरुआत से ही मज़बूत पासवर्ड बनाने के लिए पासवर्ड जनरेटर का उपयोग करें।