मेरे पास एक ऐसी वेबसाइट है जहां उपयोगकर्ता अपनी फाइलें अपलोड कर सकते हैं; ये सर्वर पर संग्रहीत हैं और उनके मेटाडेटा डेटाबेस में दर्ज हैं। मैं कुछ सरल अखंडता जांच को कार्यान्वित कर रहा हूं, यानी "क्या इस फाइल की सामग्री अब बाइट-फॉर-बाइट समान है जब इसे अपलोड किया गया था?"2 अलग हैश फ़ंक्शन का उपयोग फ़ाइल अखंडता की जांच करने का एक अच्छा तरीका है?
एक उदाहरण: userfile.jpg
की सामग्री के लिए, एमडी 5 हैश 39f9031a154dc7ba105eb4f76f1a0fd4
और SHA-1 हैश 878d8d667721e356bf6646bd2ec21fff50cdd4a9
है। यदि यह फ़ाइल की सामग्री बदलती है, लेकिन उसके पहले और बाद में एक ही एमडी 5 हैश है, तो क्या यह संभव है कि SHA-1 हैश भी वही रहेगा? (हैशिंग के साथ, कभी कभी आप एक हैश टक्कर मिल सकती है - यह एक बार में दो अलग अलग हैशिंग एल्गोरिदम के साथ भी हो सकता है?)
या कोई फ़ाइल व्यर्थ के लिए दो अलग-अलग हैश कंप्यूटिंग है (और मैं ईमानदारी की पुष्टि करने के लिए कुछ अन्य तंत्र की कोशिश करनी चाहिए)?
संपादित करें: मैं आकस्मिक भ्रष्टाचार के बारे में वास्तव में चिंतित नहीं हूँ, लेकिन मैं उन फ़ाइल किसी का ध्यान नहीं (birthday attack और दोस्तों) को बदलने को रोकने के लिए माना जाता रहा हूँ।
मैं शायद एक हैश, SHA-512 के साथ जाऊंगा - चेक अक्सर ऐसा नहीं होता है जो अक्सर प्रदर्शन की बाधा बनता है और वैसे भी, "ब्रूस श्नीयर कहते हैं, वहां पहले से ही पर्याप्त तेज़, असुरक्षित सिस्टम हैं। टिप्पणियों में @MichaelGG "।
मुझे एमडी 5 के विपरीत SHA1 में किसी भी भेद्यता के बारे में पता नहीं है। तो आप एमडी 5 क्यों नहीं डंप करते हैं और SHA1 का उपयोग क्यों करते हैं? –
@ पॉल टॉम्बलिन: हाँ, मैं शायद एसएचए-कुछ के साथ जाऊंगा :) इसे प्रतिबिंबित करने के लिए संपादित किया गया। – Piskvor
ब्रूस श्नीयर कहते हैं, वहां पहले से ही पर्याप्त तेज़, असुरक्षित सिस्टम हैं। – MichaelGG