मैं identifying files with unknown origin के लिए MD5 हैश का उपयोग करता हूं। यहां कोई हमलावर नहीं है, इसलिए मुझे परवाह नहीं है कि एमडी 5 टूटा गया है और कोई इरादे से टकराव उत्पन्न कर सकता है।क्या मैं डेटा पहचान के लिए एमडी 5 हैश का हिस्सा उपयोग कर सकता हूं?
मेरी समस्या है कि मुझे लॉगिंग प्रदान करने की आवश्यकता है ताकि विभिन्न समस्याओं का निदान आसान हो। यदि मैं हर हैश को एक हेक्स स्ट्रिंग के रूप में लॉग करता हूं जो बहुत लंबा, असुविधाजनक और बदसूरत दिखता है, तो मैं हैश स्ट्रिंग को छोटा करना चाहता हूं।
अब मुझे पता है कि केवल GUID is a very bad idea का एक छोटा सा हिस्सा लेना - GUID को अद्वितीय होने के लिए डिज़ाइन किया गया है, लेकिन उनमें से कोई हिस्सा नहीं है।
एमडी 5 के लिए भी यही सच है - क्या मैं एमडी 5 के पहले 4 बाइट्स कह सकता हूं और मान लेता हूं कि मूल हैश की तुलना में बाइट्स की कम संख्या के कारण मुझे केवल टकराव की संभावना अधिक है?
http://stackoverflow.com/questions/860405/are-the-first-32-bits-of-an-md5-hash-just-as-random-as-any-other-substring –
का संभावित डुप्लिकेट मैं सोच रहा हूं कि पहले 4 बाइट्स प्राप्त करना एमडी 5 हैश के सीआरसी 32 का उपयोग करने से बेहतर है। –
हां, क्योंकि एमडी 5 में पहली 32 बिट पूरी तरह यादृच्छिक रूप से वितरित की जानी चाहिए, इसलिए आप वितरण में सुधार नहीं कर सकते हैं। –