1) वास्तव में कम हैश टकराव के उद्देश्य के लिए, क्या मैं sha1 से निपटने के बजाए sha1 के 128 बिट्स का आधा उपयोग कर सकता हूं? मैं समझता हूं कि यह क्रिप्टोग्राफिक हैंश के लिए उपयुक्त नहीं है, लेकिन मुझे हैश टेबल कुंजी के लिए केवल हैश की आवश्यकता है।एक आईडी के रूप में sha1 हैश के केवल 64-बिट्स का उपयोग करने के लिए ठीक है?
2) गणना समय प्राथमिकता नहीं है, और इसके अतिरिक्त मैं डेटा के बहुत छोटे टुकड़े हैं। विशेष रूप से, मैं ज्यादातर 2 या 3 64-बिट हैश लेने जा रहा हूं और उन्हें 64-बिट हैश प्राप्त करने के लिए परेशान कर रहा हूं। क्या इस उद्देश्य के लिए sha1 से बेहतर विकल्प है? फिर, टकराव बहुत असंभव होना चाहिए।
3) मैं एक एसक्यूएल न्यूबी हूं। एसक्यूएल में आईडी के रूप में 64-बिट हैश का उपयोग करना अच्छा विचार है? 64-बिट आईडी के कारण स्क्लाइट या पोस्टग्रेस में प्रदर्शन समस्याएं होंगी? मुझे कई डेटाबेस (ल्यूसीन इंडेक्स समेत) में डेटा समन्वय करने की आवश्यकता होगी, इसलिए मुझे लगा कि मुझे ऑटो-इंक्रिमेंटेड आईडी के साथ परेशान करने के बजाय सीधे टेबल में हैश से निपटना चाहिए (जो केवल एक डीबी में सार्थक होगा, न कि सभी डेटा स्टोर में)। मुझे लगता है कि 64-बिट एक अच्छा समझौता है: संभावित टक्कर के लिए काफी बड़ा है लेकिन अंतरिक्ष पर बचाता है (और लुकअप समय?)।
4) सीआरसी -64 के बारे में क्या? क्या यह एक यादृच्छिक पर्याप्त वितरण उत्पन्न करता है?
मुझे लगता है कि GUID/UUID बहुत ज्यादा है जो मैं चाहता हूं। निश्चित नहीं है कि स्क्लाइट समर्थन पर्याप्त है, इसलिए मैं इसकी जांच करूंगा। जैसा कि मैंने कहा, मैं एक एसक्यूएल newb हूँ। – Jegschemesch
एसक्लाइट 3 को आसानी से यूयूआईडी का समर्थन करने के लिए बढ़ाया जा सकता है, और मैंने पहले आईफोन ऐप में सफलतापूर्वक ऐसा किया है। –
मैं इस उत्तर पर सहमत हूं। मेरे पास लाखों पंक्तियों के हंड्रेट से भरा एक टेबल है और प्रदर्शन के कारणों के लिए स्ट्रिंग के रूप में sha1 हैश की बजाय पहले 64 बिट को अनगिनत पूर्णांक कुंजी के रूप में उपयोग करें। 350 मिलियन पंक्तियों के साथ मुझे 56 बिट्स के साथ कुछ टकराव हुए थे। मैं हमेशा 64-बिट-हैश-कुंजी को अपनी तिथि के साथ जोड़ता हूं ताकि दोनों हैशकी और तारीख को मिलान करने की आवश्यकता हो। उस विधि का उपयोग करते हुए मेरे पास केवल 30 मिलियन पंक्तियां होती हैं जो टकराव का कारण बन सकती हैं, जो लंबे समय तक होने का मौका बहुत कम करती है। एक टक्कर से जानकारी की एक शांति को गलत लगेगा - मेरे मामले में बचत के लायक है। – bhelm