CalcOpenly
हिन्दी

हैश जनरेटर और चेकसम कैलकुलेटर (MD5, SHA-256)

किसी पाठ के MD5, SHA-1, SHA-256, SHA-512 और CRC-32 हैश बनाएँ, प्रकाशित चेकसम से मिलाएँ और छोटे बदलाव का हैश पर असर देखें।

AI लेखन टूल से मसौदा तैयारअपडेट किया गया जाँचे गए उदाहरण: 11

हैश UTF-8 बाइट का बनता है। हर पंक्ति-विराम एक लाइन फ़ीड (\n) गिना जाता है।
और विकल्प
`echo text | sha256sum` जैसा परिणाम: पाठ के बाद एक लाइन फ़ीड का भी हैश बनता है।
आज़माएँ
डाइजेस्ट
d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592
डाइजेस्ट: d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592
MD5
9e107d9d372bb6826bd81d3542a419d6
SHA-1
2fd4e1c67a2d28fced849ee1bb76e7391b93eb12
SHA-512
07e547d9586f6a73f73fbac0435ed76951218fb7d0c8d788a309d785436bbb642e93a252a954f23912547d1e8a3b5ed6e1bfd7097821233fa0538f3db854fee6
CRC-32
414fa339
इनपुट का आकार
43बाइट
डाइजेस्ट का आकार
256बिट
इनपुट का एक बिट पलटने पर बदले डाइजेस्ट बिट
141बिट

SHA-256 इन 43 बाइट से 256-बिट डाइजेस्ट बनाता है। इनपुट का एक बिट पलटने पर डाइजेस्ट के 256 में से 141 बिट (55.1%) बदले। इसलिए लगभग समान इनपुट के डाइजेस्ट असंबंधित दिखते हैं।

एवलांच जाँच, SHA-256 (256 में से पहले 64 बिट)

इनपुट का डाइजेस्ट
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
पहले बाइट का बिट 0 पलटने के बाद डाइजेस्ट
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
अलग बिट
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1

इनपुट का एक बिट बदलने पर बदले डाइजेस्ट बिट का अनुपात

MD5 (63/128 बिट)49.2%SHA-1 (75/160 बिट)46.9%SHA-256 (141/256 बिट)55.1%SHA-512 (262/512 बिट)51.2%CRC-32 (20/32 बिट)62.5%
गणना कैसे होती है S
  1. पाठ को UTF-8 में बदलें

    अक्षर: 43 → बाइट: 43 (344 बिट)।

  2. पूरे ब्लॉक तक पैडिंग जोड़ें

    blocks=⌊n+864⌋+1=⌊43+864⌋+1=1\text{blocks} = \left\lfloor \frac{n + 8}{64} \right\rfloor + 1 = \left\lfloor \frac{43 + 8}{64} \right\rfloor + 1 = 1

    एक 1 बिट, शून्य और संदेश की 64-बिट लंबाई जोड़ें, ताकि पैड किया संदेश 512 बिट का गुणज बने।

  3. कम्प्रेशन फ़ंक्शन चलाएँ

    1 block×64 rounds=64 rounds1\ \text{block} \times 64\ \text{rounds} = 64\ \text{rounds}

    हर ब्लॉक आठ 32-बिट वर्ड की स्थिति बदलता है; ब्लॉक के बाद इसे चल रही स्थिति में वापस जोड़ा जाता है।

  4. डाइजेस्ट पढ़ें

    SHA-256 = d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592 (256 बिट, 64 हेक्स अंक)।

हैश जनरेटर और चेकसम कैलकुलेटर (MD5, SHA-256) के बारे में

क्रिप्टोग्राफिक हैश किसी भी इनपुट से निश्चित लंबाई का डाइजेस्ट बनाता है: MD5 के लिए 128 बिट, SHA-1 के लिए 160, SHA-256 के लिए 256 और SHA-512 के लिए 512 बिट। CRC-32 त्रुटियाँ पहचानने वाला 32-बिट चेकसम है। पाठ को UTF-8 बाइट में बदलकर 512 या 1024 बिट के पूरे ब्लॉक तक पैडिंग दी जाती है, फिर NIST FIPS 180-4 और RFC 1321 के अनुसार एल्गोरिदम के कम्प्रेशन चरण चलाए जाते हैं।

इसका उपयोग डाउनलोड को प्रकाशित चेकसम से जाँचने, फ़ाइलें मिलाने और अपने कोड का परीक्षण करने में होता है। डिफ़ॉल्ट वाक्य "The quick brown fox jumps over the lazy dog" का SHA-256 डाइजेस्ट d7a8fbb3…37c9e592 है। इनपुट का एक बिट पलटने से डाइजेस्ट के 256 में से 141 बिट बदलते हैं, जो अच्छे हैश में अपेक्षित लगभग आधे बिट के करीब है।

MD5 और SHA-1 में व्यावहारिक कोलिज़न हमले संभव हैं। जहाँ कोई डेटा में जानबूझकर बदलाव कर सकता हो, वहाँ SHA-256 या SHA-512 चुनें।

पाठ का हैश और चेकसम कैसे निकालें

हैश इनपुट के बाइट से निश्चित लंबाई का डाइजेस्ट बनाता है। SHA-256 में 64 हेक्स अंक, MD5 में 32 और CRC-32 में 8 होते हैं। एक जैसे बाइट हमेशा वही डाइजेस्ट देते हैं। इनपुट में छोटा बदलाव भी सामान्यतः बहुत अलग डाइजेस्ट बनाता है। यहाँ पाठ UTF-8 में पढ़ा जाता है; फ़ाइल के बाइट सीधे अपलोड नहीं होते।

जाँच के लिए abc लिखकर SHA-256 चुनें। बिना नई पंक्ति के उसका परिणाम ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad है, जो NIST के उदाहरण से मिलता है। प्रकाशित चेकसम तुलना बॉक्स में पेस्ट कर सकते हैं।

कौन सा एल्गोरिदम चुनें

  • MD5: 128 बिट, 32 हेक्स अंक; RFC 1321 में परिभाषित।
  • SHA-1: 160 बिट, 40 हेक्स अंक।
  • SHA-256: 256 बिट, 64 हेक्स अंक।
  • SHA-512: 512 बिट, 128 हेक्स अंक।
  • CRC-32: 32 बिट, 8 हेक्स अंक; अनजानी संचार या फ़ाइल त्रुटियों की जाँच के लिए।

SHA परिवार का विवरण FIPS 180-4 में है। सुरक्षा के लिए MD5 और SHA-1 न चुनें: इनके कोलिज़न हमले ज्ञात हैं। RFC 6151 MD5 की सीमाएँ बताता है; NIST की घोषणा SHA-1 से आगे बढ़ने को कहती है।

वही दिखने वाला पाठ अलग हैश क्यों देता है

डाइजेस्ट दिखावट का नहीं, बाइट का है। echo abc | sha256sum में नई पंक्ति भी शामिल है: 3 के बजाय 4 बाइट। केवल पाठ के लिए printf '%s' abc चलाएँ। यहाँ अंत में लाइन फ़ीड वाला विकल्प चालू करने पर echo जैसा परिणाम मिलेगा।

Windows की CRLF और LF पंक्तियाँ अलग हैं। é का UTF-8 रूप C3 A9 दो बाइट है; Latin-1 का E9 एक बाइट है। पहले से संयुक्त é और e के बाद अलग उच्चारण चिह्न दिखने में समान हो सकते हैं, लेकिन UTF-8 बाइट अलग हैं। इसलिए कॉपी-पेस्ट की जाँच में एन्कोडिंग और Unicode सामान्यीकरण भी देखें।

हेक्स और Base64 एक ही डाइजेस्ट बाइट लिखने के दो तरीके हैं। abc का SHA-256 Base64 में ungWv48Bz+pBQUDeXa4iI7ADYaOWF3qctBD/YfIAFa0= है। हेक्स पाठ को फिर Base64 करने से अलग परिणाम बनता है। हेक्स में बड़े-छोटे अक्षर समान हैं; Base64 में उनका अंतर मायने रखता है।

एक बिट पलटने की जाँच

यह एवलांच उदाहरण पहले इनपुट बाइट का सबसे निचला बिट पलटता है, फिर बदले डाइजेस्ट बिट गिनता है। हर उदाहरण में ठीक आधे बिट बदलना आवश्यक नहीं है।

उदाहरणइनपुट बाइटडाइजेस्ट बिटबदले बिट
डिफ़ॉल्ट43256141
SHA-256 में abc3256112
जोड़ी गई लाइन फ़ीड4256127
CRC जाँच मान93215
Unicode UTF-814256119

डिफ़ॉल्ट The quick brown fox jumps over the lazy dog है। दूसरी और तीसरी पंक्ति abc तथा abc के बाद लाइन फ़ीड हैं। CRC पंक्ति में 123456789 है; Unicode पंक्ति में héllo €😀 के 8 कोड पॉइंट और 14 UTF-8 बाइट हैं।

जाँच मान और परिणाम की सीमा

खाली पाठ का SHA-256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 और MD5 d41d8cd98f00b204e9800998ecf8427e है। abc का MD5 900150983cd24fb0d6963f7d28e17f72 तथा 123456789 का CRC-32 cbf43926 है। डाउनलोड पर खाली-पाठ का डाइजेस्ट मिले तो पहले फ़ाइल का आकार जाँचें।

मेल खाता चेकसम तभी उपयोगी है जब उसका स्रोत भरोसेमंद हो। हमलावर फ़ाइल और उसके साथ दिया चेकसम दोनों बदल सकता हो तो केवल मेल पर्याप्त नहीं है; हस्ताक्षरित रिलीज़ या अलग भरोसेमंद स्रोत देखें। हैश एन्क्रिप्शन नहीं है: सामान्य पासवर्ड या फ़ोन नंबर के संभावित मानों का हैश बनाकर तुलना की जा सकती है।

यह पृष्ठ अधिकतम 100,000 UTF-8 बाइट लेता है। फ़ाइलों के लिए Linux पर sha256sum, macOS पर shasum -a 256 या PowerShell पर Get-FileHash लें। तुलना के लिए हेक्स, वैकल्पिक 0x और स्पेस, या Base64 स्वीकार है। पाठ पृष्ठ के पते और डिवाइस के इतिहास में जा सकता है; वास्तविक कुंजी, टोकन या पासवर्ड न पेस्ट करें।

बाइट देखने के लिए टेक्स्ट एन्कोडर, और अनुमान की सीमाएँ समझने के लिए पासवर्ड एंट्रॉपी कैलकुलेटर देखें।

हल किए गए उदाहरण

“abc” (FIPS 180-4 का एक-ब्लॉक उदाहरण)

पाठ
abc
एल्गोरिदम
SHA-256
डाइजेस्ट दिखाने का प्रारूप
हेक्स
डाइजेस्ट
ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
MD5
900150983cd24fb0d6963f7d28e17f72
SHA-1
a9993e364706816aba3e25717850c26c9cd0d89d
SHA-512
ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f
CRC-32
352441c2
इनपुट का आकार
3 बाइट

जाँच का स्रोत: उदाहरण जाँच: “abc” के FIPS 180-4 / NIST CSRC SHA-1, SHA-256, SHA-512 उदाहरण; RFC 1321 §A.5 का MD5 परीक्षण

खाली स्ट्रिंग

एल्गोरिदम
SHA-512
डाइजेस्ट दिखाने का प्रारूप
हेक्स
डाइजेस्ट
cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e
MD5
d41d8cd98f00b204e9800998ecf8427e
SHA-1
da39a3ee5e6b4b0d3255bfef95601890afd80709
SHA-256
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
CRC-32
00000000
इनपुट का आकार
0 बाइट

जाँच का स्रोत: स्वतंत्र गणना

448-बिट संदेश (SHA-256 के दो ब्लॉक)

पाठ
abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq
एल्गोरिदम
SHA-256
डाइजेस्ट दिखाने का प्रारूप
हेक्स
डाइजेस्ट
248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1
SHA-1
84983e441c3bd26ebaae4aa1f95129e5e54670f1
SHA-512
204a8fc6dda82f0a0ced7beb8e08a41657c16ef468b228a8279be331a703c33596fd15c13b1b07f9aa1d3bea57789ca031ad85c7a71dd70354ec631238ca3445
इनपुट का आकार
56 बाइट

जाँच का स्रोत: उदाहरण जाँच: 448-बिट संदेश के FIPS 180-4 / NIST CSRC दो-ब्लॉक उदाहरण

896-बिट संदेश (SHA-512 के दो ब्लॉक)

पाठ
abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmn…
एल्गोरिदम
SHA-512
डाइजेस्ट दिखाने का प्रारूप
हेक्स
डाइजेस्ट
8e959b75dae313da8cf4f72814fc143f8f7779c6eb9f7fa17299aeadb6889018501d289e4900f7e4331b99dec4b5433ac7d329eeb6dd26545e96e55b874be909

जाँच का स्रोत: उदाहरण जाँच: FIPS 180-4 / NIST CSRC का SHA-512 दो-ब्लॉक उदाहरण

सवाल

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

सुरक्षा के लिए नहीं। MD5 कोलिज़न के व्यावहारिक उदाहरण 2004 में प्रकाशित हुए; 2008 में शोधकर्ताओं ने उनसे भरोसेमंद सर्टिफिकेट अथॉरिटी का जाली प्रमाणपत्र बनाया। RFC 6151 (2011) के अनुसार डिजिटल हस्ताक्षर जैसे उपयोगों में, जहाँ कोलिज़न प्रतिरोध चाहिए, MD5 स्वीकार्य नहीं है। यह डाउनलोड की अनजानी खराबी पकड़ सकता है, लेकिन हमलावर द्वारा बदले जा सकने वाले डेटा के लिए NIST FIPS 180-4 का SHA-256 या SHA-512 चुनें।

SHA-1 और SHA-256 में क्या अंतर है?

SHA-256 का डाइजेस्ट 256 बिट या 64 हेक्स अंक का होता है; SHA-1 का 160 बिट या 40 हेक्स अंक का। SHA-1 के विपरीत SHA-256 पर कोई ज्ञात व्यावहारिक कोलिज़न हमला नहीं है। Google और CWI Amsterdam ने 2017 में पहला SHA-1 कोलिज़न, SHAttered, प्रकाशित किया। NIST ने 31 दिसंबर 2030 तक SHA-1 के सभी उपयोग बंद करने की घोषणा की है। दोनों FIPS 180-4 में वर्णित हैं।

फ़ाइल के चेकसम की जाँच कैसे करें?

डाउनलोड की गई फ़ाइल का हैश निकालकर प्रकाशक के दिए चेकसम से मिलाएँ; अंतर होने पर फ़ाइल के बाइट अलग हैं। Linux पर sha256sum file, macOS पर shasum -a 256 file, और Windows पर certutil -hashfile file SHA256 या PowerShell का Get-FileHash चलाएँ। Get-FileHash डिफ़ॉल्ट रूप से SHA-256 लेता है। यहाँ तुलना बॉक्स पाठ के लिए यही जाँच करता है और अक्षरों के बड़े-छोटे रूप तथा स्पेस को अनदेखा करता है।

echo text | sha256sum से अलग हैश क्यों मिलता है?

echo अंत में लाइन फ़ीड जोड़ता है। इसलिए abc के 3 बाइट के बजाय abc और नई पंक्ति के 4 बाइट का हैश बनता है। एक अतिरिक्त बाइट पूरा डाइजेस्ट बदल देता है: abc का SHA-256 ba7816bf से शुरू होता है, जबकि लाइन फ़ीड के साथ edeaaff3 से। केवल पाठ का हैश निकालने के लिए echo -n या printf '%s' लें, या echo जैसा परिणाम पाने के लिए यहाँ लाइन फ़ीड विकल्प चालू करें।

क्या दो अलग इनपुट का हैश एक जैसा हो सकता है?

हाँ। असीमित इनपुट निश्चित संख्या के डाइजेस्ट में बदलते हैं, पर सुरक्षित हैश में ऐसा जोड़ा ढूँढ़ना व्यावहारिक नहीं होना चाहिए। बर्थडे सीमा के अनुसार n-बिट डाइजेस्ट का कोलिज़न ढूँढ़ने में लगभग 2^(n/2) कोशिशें लगती हैं: MD5 के लिए 2^64 और SHA-256 के लिए 2^128। ज्ञात हमले MD5 और SHA-1 कोलिज़न इससे कहीं जल्दी ढूँढ़ लेते हैं। CRC रैखिक है, इसलिए CRC-32 कोलिज़न सीधे बनाए जा सकते हैं।

इस कैलकुलेटर के बारे में

blocks=⌊n+864⌋+1MD5, SHA-1, SHA-256blocks=⌊n+16128⌋+1SHA-512\begin{aligned} \text{blocks} &= \left\lfloor \frac{n + 8}{64} \right\rfloor + 1 && \text{MD5, SHA-1, SHA-256} \\ \text{blocks} &= \left\lfloor \frac{n + 16}{128} \right\rfloor + 1 && \text{SHA-512} \end{aligned}

स्रोत

  1. NIST FIPS 180-4, Secure Hash Standard (SHA-1, SHA-256, SHA-512)
  2. RFC 1321 — The MD5 Message-Digest Algorithm
  3. NIST CSRC — Examples with intermediate values (SHA-1, SHA-2)
  4. Catalogue of parametrised CRC algorithms — CRC-32/ISO-HDLC

संदर्भों से जाँच की गई

इस कैलकुलेटर में स्वतंत्र स्रोतों के उत्तरों वाले 11 हल किए गए उदाहरण शामिल हैं। ये परीक्षण समूह में चलते हैं और आप इन्हें यहाँ भी चला सकते हैं।

यह कैलकुलेटर अपनी वेबसाइट पर लगाएँ

जहाँ कैलकुलेटर दिखाना है, वहाँ इसे पेस्ट करें। इसका उपयोग मुफ़्त है, यहाँ किए गए सुधार इसमें अपने आप पहुँच जाते हैं, और उसके नीचे की श्रेय पंक्ति मूल पेज का लिंक देती है, जिससे आपके पाठक पूरा संस्करण देख सकते हैं।

ऊँचाई
एम्बेड का पूर्वावलोकन देखें

श्रेय पंक्ति बनी रहने दें। यही एकमात्र शर्त है, और इसी से ये कैलकुलेटर मुफ़्त रहते हैं।