शून्य बाइट फ़ाइलें एक हैश मान कैसे उत्पन्न कर सकती हैं?


20

एक शून्य बाइट पाठ फ़ाइल कैसे शॅश 1sum, sha256sum आदि के साथ हैश उत्पन्न कर सकती है? हैश वैल्यू जनरेट करने के लिए हैशिंग के कौन से प्रोग्राम हैं?

टा

QuickHash लिनक्स में

टर्मिनल कमांड्स

जवाबों:


21

हैश एल्गोरिदम इनपुट पढ़ते हैं और इसे संसाधित करते हैं, अगर कोई डेटा बिल्कुल नहीं है। यह एक मान्य और वांछित व्यवहार है और इसका उपयोग यह सत्यापित करने के लिए भी किया जाता है कि कोई निश्चित कार्यान्वयन सही है या नहीं। यह सभी प्रमुख एल्गोरिदम के लिए "नल-हैश" की ओर जाता है।

इसे योग करने के लिए: da39a3ee5e6b4b0d3255bfef95601890afd80709 हर जगह एक खाली फाइल के लिए sha1-hash है, वही अन्य एलरग्रिथम्स के अशक्त-राख के साथ सच है।


1
हां, आप हर दिन कुछ नया सीखते हैं! मुझे नहीं पता था कि हर एल्गोरिथ्म के लिए एक "शून्य मान" था। बहुत धन्यवाद।
Gizmo_the_Great

3
हैश एल्गोरिदम में एक पूर्व निर्धारित प्रारंभिक स्थिति होती है - एक तरह की संख्या जो वे डेटा में पढ़ने के साथ शुरू करते हैं और म्यूट करते हैं। यदि पढ़ने के लिए कोई डेटा नहीं है, तो हैश उस पूर्व निर्धारित प्रारंभिक स्थिति का एक परिणाम है।
केविन

इसका कारण यह भी है क्योंकि sha1 एल्गोरिथ्म डेटा की लंबाई को जोड़ता है (इस मामले में: शून्य) और संदेश में कुछ झंडे और पैडिंग भी जोड़े गए हैं। तो भी "कोई डेटा नहीं" अभी भी कुछ डेटा संसाधित हो जाएगा।
user92979

14

क्विक हैश में सभी हैश एल्गोरिदम मर्कले-डैमगर्ड कंस्ट्रक्शन हैं । जैसे, वे संदेश को कई ब्लॉक आकार में पैड करते हैं।

त्वरित हैश के एल्गोरिदम इसे 1थोड़ा सा जोड़कर प्राप्त करते हैं , 0आवश्यकतानुसार कई बिट्स, और अंत में संदेश की लंबाई।

यह शून्य-लंबाई वाले संदेशों सहित, मनमानी लंबाई के हैशिंग संदेशों को अनुमति देता है।


यदि मेरा संपादन कारण भ्रमित कर रहा है, तो मैंने शुरू में आपके उत्तर को गलत बताया और "स्पष्टता के लिए" इसे पुन: प्रकाशित किया, तो मुझे लगा कि मेरा संपादन गलत था और वापस जाकर इसे ठीक कर दिया। सिस्टम ने दो स्पष्टीकरणों को समेकित किया क्योंकि यह एक ही समय खिड़की के भीतर था।
फिक्सर 1234

1

(डेनिस पर जोड़ें और फिक्सर 1234 का जवाब?)

संक्षेप:

$ shasum -a 256 /dev/null e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 /dev/null

सभी 0-बाइट फ़ाइलों में एक ही चेकसम होगा।

$ shasum -a 512 /dev/null cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e /dev/null

$ shasum /dev/null da39a3ee5e6b4b0d3255bfef95601890afd80709 /dev/null

$ md5 /dev/null MD5 (/dev/null) = d41d8cd98f00b204e9800998ecf8427e (नोट: एमडी 5 टूट गया है; यह 'सुरक्षित हैश' नहीं है। यह विकिपीडिया में एमडी 5 प्रविष्टि में प्रलेखित है।)

इस प्रकार, उदाहरण के लिए, यदि आप यहाँ सूचीबद्ध हैश मानों में से एक के साथ virustotal.com पर फाइलों की सहजता को सत्यापित करने का प्रयास कर रहे हैं, जैसे कि da39a3ee5e6b4b0d3255bfef95601890afd80709तब आप आश्वस्त हो सकते हैं कि फ़ाइल वास्तव में 0 बाइट्स थी (या एक फ़ोल्डर था, जो वायरस्टोटल, भ्रामक, हैश मानो यह एक 0-बाइट फ़ाइल है।)


यह वर्तमान उत्तरों में कैसे जुड़ता है?
माते जुहेज़

यह सत्यापित करने के लिए कि यह मामला है कि सभी 0-बाइट फ़ाइलों को एक ही चेकसम के लिए एक सीधा रास्ता प्रदान करके एक ही चेकसम होगा। कई लोग इस पर संदेह करते थे जब virustotot.com पर 0-बाइट फ़ाइलों की सहजता पर चर्चा की गई थी। इसलिए मुझे लगता है कि यह किसी ऐसे व्यक्ति के लिए समाधान को जोड़ता है, जो इस सवाल पर नहीं आता है, अगर यह सच है कि यह सुनिश्चित नहीं है कि यदि cf83e1357eefb8bdf1542850d66d8007d620e4050d5783a4a921d36ce9ce47d0d13c5d8b8&b=2857b2b2 है, तो यह सही होगा।
मैथ्यू एल्वे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.