मैंने हाल ही में BSD चर्चा समूह में 2013-04-29 से पोस्टिंग पाई
http://openbsd-archive.7691.n7.nabble.com/Why-does-OpenBSD-use-CVS-td226952.html
जहां पोस्टर का दावा है:
मैं एक बार हैश टक्कर में भाग गया, git rebase का उपयोग करते हुए।
दुर्भाग्य से, वह अपने दावे के लिए कोई सबूत नहीं देता है। लेकिन शायद आप उससे संपर्क करने की कोशिश करना चाहेंगे और उससे इस कथित घटना के बारे में पूछेंगे।
लेकिन एक अधिक सामान्य स्तर पर, जन्मदिन के हमले के कारण SHA-1 हैश टकराव का एक मौका pow (2, 80) में 1 है।
यह बहुत लगता है और निश्चित रूप से संयुक्त दुनिया के सभी गिट रिपॉजिटरी में मौजूद व्यक्तिगत फ़ाइलों के संस्करणों की कुल संख्या से अधिक है।
हालाँकि, यह केवल उन संस्करणों पर लागू होता है जो वास्तव में संस्करण इतिहास में बने रहते हैं।
यदि कोई डेवलपर रिबासिंग पर बहुत अधिक निर्भर करता है, तो हर बार एक ब्रांच के लिए रिबेज चलाया जाता है, उस ब्रांच के सभी संस्करणों (या ब्रांच का रिबेडेड हिस्सा) में सभी नए हैश हो जाते हैं। हर फ़ाइल "git फ़िल्टर-शाखा" के साथ संशोधित होती है, वही सच है। इसलिए, "रिबेस" और "फिल्टर-ब्रांच" समय के साथ उत्पन्न होने वाली हैश की संख्या के लिए बड़े गुणक हो सकते हैं, भले ही उन सभी को वास्तव में नहीं रखा जाता है: अक्सर, रिबेसिंग के बाद (विशेष रूप से एक शाखा को "साफ करने" के उद्देश्य से) ), मूल शाखा को फेंक दिया जाता है।
लेकिन अगर रिबास या फिल्टर-शाखा के दौरान टकराव होता है, तो यह अभी भी प्रतिकूल प्रभाव डाल सकता है।
एक और बात यह होगी कि गिट रिपॉजिटरी में हैशेड संस्थाओं की कुल संख्या का अनुमान लगाना और देखें कि वे पॉव (2, 80) से कितनी दूर हैं।
मान लीजिए कि हमारे पास लगभग 8 बिलियन लोग हैं, और वे सभी जीआईटी चला रहे होंगे और अपने सामान को उस व्यक्ति के 100 जीआईटी रिपॉजिटरी में रखा जाएगा। आगे 'मान लें कि औसत रिपॉजिटरी में 100 कमिट और 10 फाइलें हैं, और उन फाइलों में से केवल एक ही प्रति प्रतिबद्ध है।
प्रत्येक संशोधन के लिए हमारे पास कम से कम वृक्ष वस्तु और प्रतिबद्ध वस्तु के लिए एक हैश है। परिवर्तित फ़ाइल के साथ हमारे पास प्रति संशोधन में 3 हैश है, और इस प्रकार प्रति भंडार 300 हैश है।
8 बिलियन लोगों की 100 रिपॉजिटरी के लिए यह पॉव (2, 47) देता है जो अभी भी पॉव (2, 80) से बहुत दूर है।
हालांकि, इसमें ऊपर उल्लिखित माना गुणन प्रभाव शामिल नहीं है, क्योंकि मैं अनिश्चित हूं कि इस अनुमान में इसे कैसे शामिल किया जाए। शायद यह टकराव की संभावना को काफी बढ़ा सकता है। खासकर अगर बहुत बड़े रिपॉजिटरी जो एक लंबे समय तक चलने वाले इतिहास (जैसे लिनक्स कर्नेल) को कई लोगों द्वारा छोटे बदलावों के लिए रिबूट किया जाता है, जो सभी प्रभावित कमिटों के लिए अलग-अलग हैश बनाते हैं।
I've been informed by the git Gods that the chances of a SHA1 collision is the same as the Earth being sucked up into the black hole created by the CERN accelerator. If this is indeed true, then there's no need for that extra memcmp.
, स्रोत: lwn.net/Articles/307281