मुझे लगता है कि यह पुराना है, लेकिन मुझे लगा कि मैं अपने समाधान में योगदान दूंगा। एक 2 ^ 128 संभव हैश संयोजन हैं। और इस तरह एक जन्मदिन विरोधाभास की 2 ^ 64 संभावना। हालांकि नीचे दिए गए समाधान टकराव की संभावना को समाप्त नहीं करेंगे, लेकिन यह निश्चित रूप से जोखिम को काफी कम कर देगा।
2^64 = 18,446,744,073,709,500,000 possible combinations
मैंने जो किया है, मैंने कुछ स्ट्रिंग को एक साथ इनपुट स्ट्रिंग के आधार पर एक साथ रखा है ताकि आप अपने हैश पर विचार करने के लिए बहुत अधिक परिणामी स्ट्रिंग प्राप्त कर सकें ...
तो इसके लिए मेरा छद्म कोड है:
Result = Hash(string) & Hash(Reverse(string)) & Hash(Length(string))
यह टकराव की व्यावहारिक अक्षमता है। लेकिन अगर आप सुपर पागल होना चाहते हैं और ऐसा नहीं हो सकता है, और भंडारण स्थान एक मुद्दा नहीं है (न ही चक्रों की गणना कर रहा है) ...
Result = Hash(string) & Hash(Reverse(string)) & Hash(Length(string))
& Hash(Reverse(SpellOutLengthWithWords(Length(string))))
& Hash(Rotate13(string)) Hash(Hash(string)) & Hash(Reverse(Hash(string)))
ठीक है, सबसे साफ समाधान नहीं है, लेकिन यह अब आपको एक बहुत अधिक खेलने के साथ मिलता है कि आप कितनी आसानी से टकराव में भाग जाएंगे। इस बिंदु पर मैं शब्द की सभी यथार्थवादी इंद्रियों में असंभवता मान सकता हूं।
मेरे विचार से, मुझे लगता है कि टकराव की संभावना पर्याप्त है कि मैं इस "अचूक" पर विचार करूं, लेकिन ऐसा होने की संभावना नहीं है कि यह सूट की आवश्यकता है।
अब संभव संयोजनों में काफी वृद्धि हुई है। हालांकि आप इस बात पर लंबे समय तक खर्च कर सकते हैं कि यह आपको कितने संयोजन मिल सकता है, मैं सिद्धांत रूप में कहूंगा कि यह भूमि आपको आपके द्वारा दिए गए उद्धरण संख्या से अधिक है।
2^64 (or 18,446,744,073,709,551,616)
संभवतः सौ से अधिक अंक या तो। सैद्धांतिक अधिकतम यह आपको दे सकता है
परिणामी तारों की संभावित संख्या:
528294531135665246352339784916516606518847326036121522127960709026673902556724859474417255887657187894674394993257128678882347559502685537250538978462939576908386683999005084168731517676426441053024232908211188404148028292751561738838396898767036476489538580897737998336