2013-01-08 12 views
27

का उपयोग करते समय टकराव की संभावना डेटाबेस में मेरे पास 10 वर्ण स्ट्रिंग कुंजी फ़ील्ड है। मैंने इस क्षेत्र में हैश के लिए सीआरसी 32 का उपयोग किया है लेकिन मुझे डुप्लिकेट के बारे में चिंता है। क्या कोई मुझे इस स्थिति में टकराव की संभावना दिखा सकता है?32 बिट हैश

पेज। मेरा स्ट्रिंग फ़ील्ड डेटाबेस में अद्वितीय है। यदि स्ट्रिंग फ़ील्ड की संख्या 1 मिलियन है, तो टकराव की संभावना क्या है?

उत्तर

23

मामले आप का हवाला देते में, कम से कम एक टक्कर अनिवार्य है गारंटी। कम से कम एक टकराव की संभावना लगभग 1 - 3x10 -51 है। टकराव आप उम्मीद करेंगे की औसत संख्या के बारे में 116

सामान्य में है, कश्मीर नमूनों में टकराव की औसत संख्या, प्रत्येक n संभव मूल्यों के बीच एक यादृच्छिक विकल्प है:

N(n,k)~=k(k-1)/(2n)

कम से कम एक टक्कर की संभावना है:

p(n,k)~=1-e^(-k(k-1)/(2n))

आपके मामले में, एन = 2 और के = 10 ।

तीन की संभावना - आपके मामले में टकराव लगभग 0.01 है। Birthday Problem देखें।

+0

आपको बहुत धन्यवाद, मुझे आश्चर्य है कि यह संभावना अभी भी सीआरसी 32 एल्गोरिदम पर निर्भर है? – nguyenngoc101

+0

कोई भी अच्छा 32-बिट हैश एल्गोरिदम बिल्कुल वही परिणाम देगा। –

संबंधित मुद्दे