के पहले 8 वर्णों का उपयोग करते समय डुप्लिकेट हैश की संभावना यदि मेरे पास URL की अनुक्रमणिका है, और उन्हें SHA1 हैश के पहले 8 वर्णों से आईडी है, तो समान आईडी वाले दो अलग-अलग URL की संभावना क्या है?SHA1
SHA1
उत्तर
@Tpepeemm ने 8 हेक्स अंकों के एक विशेष अनुक्रम के साथ संबंधित प्रश्न का सही उत्तर दिया है, 8 अंकों के साथ दिखाई देने वाला एक अन्य SHA-1 हैश का मौका क्या है? यह बहुत छोटी संख्या है।
क्या, इस सवाल में दांव पर लगा है, हालांकि, एक अलग सवाल यह है: '8-हेक्स अंकों दृश्यों की एक बड़ी संख्या को देखते हुए ही किया जा रहा है उनमें से किसी दो का मौका क्या है?' पहली टिप्पणी के रूप में प्रश्न के मुताबिक, यह birthday paradox से संबंधित है, जो कि 'मेरे जैसे ही जन्मदिन वाले कमरे में किसी का मौका क्या है?', लेकिन इसके बजाय ' इस कमरे में दो लोगों का क्या मौका है वही जन्मदिन? 'जैसा कि उचित रूप से जाना जाता है, इसका मौका केवल 23 लोगों के साथ 50% है।
हैश टक्कर समस्या मूलतः एक ही समस्या है, लेकिन एन = 365 करने के लिए दिनों एन = 16^8 8-बाइट दृश्यों, जो 4.30e9 के बारे में से सामान्यीकृत। यह ‘generalised birthday problem’ है। अभिव्यक्ति वहाँ उद्धृत (एन = sqrt (2 का प्रयोग * घ * ln (1/(1-पी))), के साथ d = 4.30e9 और पी = 0.5, हम एक की 50% संभावना लगता है केवल 77000 परीक्षणों के साथ टकराव। आप इसी समारोह साजिश हैं, तो आप परीक्षणों की संख्या बढ़ जाती के रूप में काफी तेजी से संभावना बढ़ जाती है देखते हैं।
हैश के 16 बाइट्स के साथ भी(ताकि घ = 16^16) वहाँ एक 50 है केवल 5 बिलियन परीक्षणों के बाद टकराव का% मौका।
जन्मदिन मुबारक हो!
अच्छा बिंदु; मैंने इसके बारे में सोचा नहीं था। मुझे लगता है कि ओपी ऐसा क्यों कर रहा है यह नीचे आता है। यदि यह आसानी से कुछ यूआरएल हैश है, तो टकराव एक बड़ा सौदा नहीं है। अगर टकराव से बचना महत्वपूर्ण है, तो यह एक और कहानी है। – Teepeemm
एक एसएचए -1 हैश में 40 बेस -16 अंक हैं। यदि आप केवल उनमें से पहले 8 को देख रहे हैं, तो संभावना है कि एक दूसरा यूआरएल एक ही 8 अंक है (1/16)^8 ~ 2.32e-10
। असल में, यह 40 अंकों के साथ शुरू होने पर निर्भर नहीं है, या यहां तक कि यह SHA-1 है। आपको केवल एक ही धारणा है कि SHA-1 में पहले 8 अंक स्वतंत्र और समान रूप से वितरित किए गए हैं।
- 1. अजगर HMAC-SHA1 बनाम जावा HMAC-SHA1 अलग परिणाम
- 2. अप्रत्याशित परिणाम (sha1)
- 3. उद्देश्य सी: SHA1
- 4. पायथन SHA1 इंटेगर
- 5. PBKDF2-HMAC-SHA1
- 6. homebrew - बल SHA1 बेमेल
- 7. MD5 और SHA1
- 8. Git एक SHA1
- 9. SHA1 टकराव की संभावना
- 10. रेल में SHA1 हैशिंग
- 11. sha1 फिंगरप्रिंट क्या है?
- 12. एचएमएसी SHA1 कोल्डफ्यूजन
- 13. गिट "खराब sha1 फ़ाइल" त्रुटि
- 14. एचएमसी SHA1 हैश - सी # रूबी
- 15. जेनकींस Git पुल अनुरोध $ {SHA1}
- 16. नवीनतम के SHA1 दूरस्थ प्रतिबद्ध
- 17. SHA1 सादा पाठ? सी # .NET
- 18. एक मेमोरी-कुशल SHA1 कार्यान्वयन
- 19. पायथन एन्क्रिप्शन w/hashlib sha1
- 20. गिट पुल त्रुटि: अस्थायी sha1 फ़ाइल नाम
- 21. क्रिप्टोग्राफिक हैश "abc" के SHA1 हैश मेथेमेटिका
- 22. गिट लॉग: घातक ऑब्जेक्ट [sha1] दूषित है
- 23. जावा बराबर php के लिए HMAC-SHA1
- 24. अमान्य SHA1 हस्ताक्षर फ़ाइल को पचाने
- 25. एक धार फ़ाइल से SHA1 हैश निकालें
- 26. rejing django.contrib.auth.models.User पासवर्ड, sha1 पठनीय स्ट्रिंग
- 27. बेस 64 एक sha1/sha256 हैश क्यों?
- 28. जावा का संदेशडिगस्ट SHA1-एल्गोरिदम php
- 29. MD5 और SHA1 सी ++ hashing पुस्तकालय
- 30. रूबी में hmac-sha1 सी # HMACSHA1
इन लोगों को टकराव से मारा गया अपनी सार्वजनिक वेबसाइट में 7 हेक्स अंकों के लिए छंटनी। 8 थोड़ा बेहतर है, लेकिन शायद जोखिम के लायक नहीं है। http://blog.getsolid.io/birthday-paradox-coding-solid –