व्यवहार में, हां, एक समान क्रिप्टोग्राफिक हैश का अर्थ है कि फाइलें समान हैं, जब तक कि फाइलों को किसी हमलावर या अन्य दुर्भावनापूर्ण इकाई द्वारा तैयार नहीं किया गया था। की बाधाओं यादृच्छिक किसी भी अच्छी तरह से डिजाइन क्रिप्टोग्राफिक हैश समारोह के साथ टकराव के रूप में व्यवहार में और एक सक्रिय हमलावर के अभाव में नगण्य इतना छोटा है।
सामान्य तौर पर, हालांकि, नहीं, हम यह नहीं कह सकते हैं कि एक ही हैश वाली दो मनमानी फाइलें निश्चित रूप से इसका मतलब है कि वे समान हैं।
जिस तरह से एक क्रिप्टोग्राफिक हैश फ़ंक्शन काम करता है वह एक मनमाना-लंबाई इनपुट लेने के लिए है, और इनपुट से गणना की गई निश्चित-लंबाई मान आउटपुट करता है। कुछ हैश फ़ंक्शंस में से चुनने के लिए कई आउटपुट लंबाई हैं, लेकिन आउटपुट अभी भी एक निश्चित-लंबाई मान से कुछ हद तक है। यह मान कुछ दर्जन बाइट तक लंबा होगा; आम उपयोग में सबसे लंबे आउटपुट मूल्य वाले हैश एल्गोरिदम में आज 512-बिट आउटपुट है, और 512-बिट आउटपुट 64 बाइट्स है।
यदि हैश फ़ंक्शन का इनपुट हैश फ़ंक्शन के आउटपुट से अधिक लंबा है, तो आउटपुट में इनपुट फिट करने के लिए कुछ निष्ठा को हटाया जाना चाहिए। नतीजतन, आउटपुट की लंबाई से अधिक लंबाई के कई इनपुट मौजूद होने चाहिए, जो समान आउटपुट उत्पन्न करते हैं।
एक उदाहरण के रूप में, वर्तमान वर्कहॉर्स, SHA-256 को लेते हैं। यह 256 बिट्स या 32 बाइट्स के हैश का उत्पादन करता है। यदि आपके पास दो फाइलें हैं जो प्रत्येक 32 बाइट्स लंबी हैं, लेकिन अलग-अलग हैं, तो इन्हें (एल्गोरिथ्म में कोई दोष नहीं मानते) अलग-अलग मानों के लिए हैश, कोई बात नहीं फ़ाइलों की सामग्री; गणितीय संदर्भ में, हैश एक समारोह एक 2 मानचित्रण है 256 एक 2 पर इनपुट अंतरिक्ष 256 उत्पादन अंतरिक्ष, जो टकराव के बिना ऐसा करना संभव होना चाहिए। हालाँकि, अगर आपके पास दो फाइलें हैं जो प्रत्येक 33 बाइट्स लंबी हैं, तो कुछ ऐसे इनपुट्स का संयोजन होना चाहिए जो दोनों फाइलों के लिए समान 32-बाइट आउटपुट हैश मान दें, क्योंकि अब हम 2 256 पर 2 264 इनपुट स्पेस की मैपिंग कर रहे हैं।उत्पादन स्थान; यहां, हम आसानी से देख सकते हैं कि हर एक आउटपुट के लिए औसतन 2 8 इनपुट मौजूद होने चाहिए । इसे आगे ले जाएं, और 64-बाइट फ़ाइलों के साथ हर एक आउटपुट के लिए 2 256 इनपुट मौजूद होने चाहिए !
क्रिप्टोग्राफ़िक हैश फ़ंक्शंस ऐसे डिज़ाइन किए गए हैं कि किसी विशेष आउटपुट देने वाले इनपुट की रचना करना या एक ही आउटपुट देने वाले दो इनपुटों की रचना करना कम्प्यूटेशनल रूप से कठिन है। इसे प्रीइमेज अटैक रेजिस्टेंस या टक्कर अटैक प्रतिरोध के रूप में जाना जाता है । इन टकरावों को खोजना असंभव नहीं है ; यह सिर्फ वास्तव में, वास्तव में, वास्तव में, वास्तव में कठिन होने का इरादा है । (टक्कर के हमले का एक विशेष मामला जन्मदिन का हमला है ।)
हमलावरों का विरोध करने पर कुछ एल्गोरिदम दूसरों की तुलना में बेहतर हैं। एमडी 5 को आम तौर पर इन दिनों पूरी तरह से टूटा हुआ माना जाता है, लेकिन आखिरी बार मैंने देखा, यह अभी भी बहुत अच्छा पहला शिकार प्रतिरोध खेल रहा है। SHA-1 वैसे ही प्रभावी रूप से टूट गया है; प्रीइमेज हमलों का प्रदर्शन किया गया है, लेकिन विशिष्ट परिस्थितियों की आवश्यकता होती है, हालांकि यह मानने का कोई कारण नहीं है कि यह अनिश्चित काल के लिए मामला होगा; जैसा कि कहा जाता है, हमले हमेशा बेहतर होते हैं, वे कभी खराब नहीं होते हैं। SHA-256/384/512 वर्तमान में अभी भी अधिकांश उद्देश्यों के लिए सुरक्षित माना जाता है। हालांकि , अगर आप सिर्फ यह देखने में रुचि रखते हैं कि दो गैर-दुर्भावनापूर्ण रूप से तैयार किए गए वैध हैं या नहींफ़ाइलें समान हैं, फिर इनमें से कोई भी पर्याप्त होना चाहिए, क्योंकि इनपुट स्थान पहले से ही पर्याप्त रूप से विवश है कि आप ज्यादातर यादृच्छिक सत्रों में रुचि लेंगे। यदि आपके पास यह मानने का कोई कारण है कि फ़ाइलों को दुर्भावनापूर्ण रूप से तैयार किया गया था, तो आपको कम से कम एक क्रिप्टोग्राफ़िक हैश फ़ंक्शन का उपयोग करने की आवश्यकता है जो वर्तमान में सुरक्षित माना जाता है, जो SHA-256 पर निचला पट्टी डालता है।
पहला प्राइमेज एक इनपुट खोजना है जो एक विशिष्ट आउटपुट हैश मान प्राप्त करता है; दूसरा प्रीइमेज एक इनपुट को खोजने के लिए है जो दूसरे, निर्दिष्ट इनपुट के समान आउटपुट देता है; टकराव दो इनपुटों को खोजने के लिए होता है जो एक ही आउटपुट प्राप्त करते हैं, बिना इस बात के कि क्या है और कभी-कभी बिना इनपुट के क्या संबंध हैं।
उस सभी ने कहा, यह ध्यान रखना महत्वपूर्ण है कि फ़ाइलों में बहुत भिन्न डेटा अभ्यावेदन हो सकते हैं और अभी भी बिल्कुल उसी तरह प्रदर्शित होते हैं। इसलिए वे अपने क्रिप्टोग्राफिक हैश से मेल नहीं खाते हुए भी समान दिखाई दे सकते हैं , लेकिन यदि हैश मैच होता है, तो वे समान दिखने की संभावना रखते हैं।
cmp
पर यूनिक्स याfc
(फाइल तुलना) पर उनकी तुलना कर सकते हैं ।