Keccak-256 हैश जनरेटर
अपने ब्राउज़र में किसी भी टेक्स्ट का Keccak-256 हैश तुरंत बनाएँ। UTF-8, हेक्स या Base64 इनपुट; हेक्स या Base64 आउटपुट। मुफ़्त, निजी, बिना अपलोड।
पूरी तरह आपके ब्राउज़र में चलता है। आपका डेटा कभी अपलोड नहीं होता।
Keccak-256 हैश जनरेटर क्या है?
Keccak-256 मूल Keccak हैश है (SHA-3 प्रतियोगिता का विजेता, जैसा 2011 में जमा किया गया), जिसका आउटपुट 256-बिट है; यह FIPS 202 के लिए NIST द्वारा पैडिंग बदलने से पहले का रूप है। यह टूल टाइप करते ही टेक्स्ट या रॉ बाइट (हेक्स या Base64) का 256-बिट Keccak-256 डाइजेस्ट निकालता है और उसे 64 हेक्स अक्षरों या Base64 में दिखाता है।
Keccak-256 हैश जनरेटर का उपयोग कैसे करें
- अपना इनपुट हैश करने के लिए टेक्स्ट में टाइप या पेस्ट करें; डाइजेस्ट टाइप करते ही अपडेट होता है (खाली बॉक्स खाली इनपुट का हैश दिखाता है)।
- इनपुट एन्कोडिंग चुनें: टेक्स्ट (UTF-8) अक्षरों को UTF-8 मानकर हैश करता है, हेक्स बाइट्स या Base64 डिकोड किए गए रॉ बाइट हैश करते हैं।
- आउटपुट फ़ॉर्मैट चुनें (हेक्स छोटे अक्षर, हेक्स बड़े अक्षर या Base64) और कॉपी करें दबाएँ।
उदाहरण
abc
4e03657aea45a94fc7d47ba826c8d667c0d1e6e33a64a036ec44f58fa12d6c45
3 ASCII बाइट "abc" का Keccak-256 (UTF-8, हेक्स छोटे अक्षर आउटपुट), मानक टेस्ट वेक्टर।
Keccak-256 हैश जनरेटर का उपयोग कब करें
स्ट्रिंग हैश करने के लिए Keccak-256 टेक्स्ट टूल का उपयोग करें: दस्तावेज़ या कोड से कोई मान दोहराना, टेस्ट वेक्टर बनाना, API सिग्नेचर का इनपुट मिलाना, या यह देखना कि प्रोग्राम को क्या आउटपुट देना चाहिए। डाउनलोड की गई फ़ाइल जाँचने के लिए इसका उपयोग न करें: फ़ाइल की सामग्री टेक्स्ट बॉक्स में कॉपी करने से लाइन एंडिंग और एन्कोडिंग बदल जाती हैं, इसलिए Keccak-256 फ़ाइल चेकसम टूल का उपयोग करें। मानकों पर आधारित नए काम (FIPS, NIST) के लिए इसके बजाय SHA3-256 इस्तेमाल करें।
Keccak-256 हैश जनरेटर कैसे काम करता है
Keccak-256 इनपुट को 1600-बिट Keccak-f[1600] स्टेट में 1088-बिट ब्लॉक (कैपेसिटी 512 बिट) में एब्ज़ॉर्ब करता है और हर ब्लॉक पर 24 परम्यूटेशन राउंड लगाता है। यह मूल Keccak नियम pad10*1 (बाइट 0x01 … 0x80) से पैड करता है, उस 01 डोमेन सफ़िक्स के बिना जो FIPS 202 ने जोड़ा। स्टेट के पहले 256 बिट डाइजेस्ट होते हैं, इसीलिए Keccak-256 और SHA3-256 हर इनपुट पर अलग आते हैं। टेक्स्ट को पहले बाइट में बदला जाता है (डिफ़ॉल्ट UTF-8), इसलिए वही अक्षर हमेशा वही हैश देते हैं।
सामान्य उपयोग मामले
- यूनिट टेस्ट या फ़िक्स्चर में किसी स्ट्रिंग का अपेक्षित Keccak-256 जाँचें
- डीबगर, पैकेट कैप्चर या प्रोटोकॉल स्पेक से कॉपी किए हेक्स बाइट हैश करें
- दो प्रोग्रामिंग भाषाओं में अलग आ रहे Keccak-256 आउटपुट की तुलना करें
- टेक्स्ट से निश्चित (डिटरमिनिस्टिक) आइडेंटिफ़ायर या कैश की बनाएँ
- हेडर या कॉन्फ़िगरेशन फ़ाइलों के लिए Keccak-256 डाइजेस्ट का Base64 रूप पाएँ
सुरक्षा नोट
Keccak-256 पर कोई व्यावहारिक हमला ज्ञात नहीं है। सादे हैश पासवर्ड स्टोर करने के लिए भी उपयुक्त नहीं हैं: इसके लिए Argon2, scrypt या bcrypt जैसा धीमा, सॉल्ट वाला पासवर्ड हैश इस्तेमाल करें। सब कुछ आपके ब्राउज़र में ही स्थानीय रूप से निकलता है; आप जो टाइप करते हैं वह कहीं नहीं भेजा जाता।
अक्सर पूछे जाने वाले प्रश्न
क्या यही वह हैश है जिसे Ethereum keccak256 कहता है?
हाँ। Solidity का keccak256, Ethereum पते (सार्वजनिक कुंजी के Keccak-256 के अंतिम 20 बाइट) और फ़ंक्शन सेलेक्टर (सिग्नेचर के Keccak-256 के पहले 4 बाइट, जैसे transfer(address,uint256) → a9059cbb) सब यही मूल Keccak-256 इस्तेमाल करते हैं, FIPS 202 वाला SHA3-256 नहीं।
Solidity की तरह हेक्स मान को हैश कैसे करूँ?
Solidity बाइट हैश करता है, इसलिए keccak256(0x1234) दो बाइट हैश करता है। इनपुट एन्कोडिंग में हेक्स बाइट्स चुनें और हेक्स को बिना स्पेस के पेस्ट करें; टेक्स्ट चुनने पर उसके ASCII अक्षर हैश हो जाएँगे।
एक अक्षर बदलने पर हैश पूरी तरह क्यों बदल जाता है?
यह एवलांच इफ़ेक्ट है, जिसके लिए हर क्रिप्टोग्राफ़िक हैश बनाया जाता है: इनपुट का एक बिट पलटने से आउटपुट के लगभग आधे 256 बिट बदल जाते हैं, इसलिए मिलते-जुलते इनपुट के डाइजेस्ट आपस में असंबंधित होते हैं।
क्या अंत में स्पेस या नई लाइन से फ़र्क पड़ता है?
हाँ। हाँ। हैश हर बाइट को शामिल करता है, इसलिए abc और उसके बाद नई लाइन वाला abc अलग Keccak-256 मान देते हैं। पक्का करें कि इनपुट में ठीक वही बाइट हों जिन्हें आप हैश करना चाहते हैं।