क्या आप किसी ने हैशिंग फ़ंक्शन/एल्गोरिदम पर कुछ प्रकाश डाला हो सकता है पर्ल एक स्ट्रिंग को किसी इंडेक्स में मैप करने के लिए उपयोग करता है? कोई प्रासंगिक पढ़ना?पर्ल का उपयोग क्या हैशिंग फ़ंक्शन/एल्गोरिदम है?
9
A
उत्तर
15
PERL_HASH_INTERNAL_
, hv.h
में परिभाषित है, नीचे की नकल की:
/* hash a key */
/* FYI: This is the "One-at-a-Time" algorithm by Bob Jenkins
* from requirements by Colin Plumb.
* (http://burtleburtle.net/bob/hash/doobs.html) */
/* The use of a temporary pointer and the casting games
* is needed to serve the dual purposes of
* (a) the hashed data being interpreted as "unsigned char" (new since 5.8,
* a "char" can be either signed or unsigned, depending on the compiler)
* (b) catering for old code that uses a "char"
*
* The "hash seed" feature was added in Perl 5.8.1 to perturb the results
* to avoid "algorithmic complexity attacks".
*
* If USE_HASH_SEED is defined, hash randomisation is done by default
* If USE_HASH_SEED_EXPLICIT is defined, hash randomisation is done
* only if the environment variable PERL_HASH_SEED is set.
* For maximal control, one can define PERL_HASH_SEED.
* (see also perl.c:perl_parse()).
*/
#define PERL_HASH_INTERNAL_(hash,str,len,internal) \
STMT_START { \
register const char * const s_PeRlHaSh_tmp = str; \
register const unsigned char *s_PeRlHaSh = (const unsigned char *)s_PeRlHaSh_tmp; \
register I32 i_PeRlHaSh = len; \
register U32 hash_PeRlHaSh = (internal ? PL_rehash_seed : PERL_HASH_SEED); \
while (i_PeRlHaSh--) { \
hash_PeRlHaSh += *s_PeRlHaSh++; \
hash_PeRlHaSh += (hash_PeRlHaSh << 10); \
hash_PeRlHaSh ^= (hash_PeRlHaSh >> 6); \
} \
hash_PeRlHaSh += (hash_PeRlHaSh << 3); \
hash_PeRlHaSh ^= (hash_PeRlHaSh >> 11); \
(hash) = (hash_PeRlHaSh + (hash_PeRlHaSh << 15)); \
} STMT_END
संबंधित मुद्दे
- 1. पासवर्ड हैशिंग क्या है?
- 2. बाइनरी हैशिंग - यह क्या है?
- 3. हैशिंग एल्गोरिदम, इसका उपयोग?
- 4. हैशिंग के दौरान "नमक" का उद्देश्य क्या है?
- 5. हैशिंग जानकारी में क्या उद्देश्य है?
- 6. इस पर्ल सबराउटिन में 'उपयोग वर्स' का क्या मतलब है?
- 7. क्या पर्ल का उपयोग करने के लायक प्रत्येक कार्य है?
- 8. हैशिंग समानता
- 9. यूनिवर्सल हैशिंग
- 10. सी प्रोग्रामिंग में SHA1 हैशिंग का उपयोग कैसे करें
- 11. मैं किस पासवर्ड हैशिंग विधि का उपयोग करना चाहिए?
- 12. लगातार पीएचसी/memcached एक्सटेंशन का उपयोग करते हुए लगातार हैशिंग
- 13. पर्ल में $ # सरणी का क्या अर्थ है?
- 14. पर्ल में कॉलन का क्या अर्थ है?
- 15. पर्ल ($ _, @_) में अंडरस्कोर का महत्व क्या है?
- 16. पर्ल में "~~" का क्या अर्थ है?
- 17. पर्ल में @_ -1 का क्या अर्थ है?
- 18. पासवर्ड हैशिंग के लिए क्या उपयोग करें? JBCrypt का उपयोग न करने का कोई कारण नहीं है?
- 19. @ क्या है। पर्ल में?
- 20. हैशिंग और अनुक्रमण के बीच क्या अंतर है?
- 21. आज उपलब्ध सबसे मजबूत हैशिंग एल्गोरिदम क्या है?
- 22. हैशिंग ओएलई वेरिएंट के लिए अनुशंसित कार्यान्वयन क्या है?
- 23. क्या यह एक पर्ल हैश बनाने का सही तरीका है जो सरणी का उपयोग करता है?
- 24. हैशिंग बनाम हस्ताक्षर बाइनरी
- 25. एन्क्रिप्शन और हैशिंग
- 26. क्या मुझे पर्ल में ऑटोबॉक्स का उपयोग करना चाहिए?
- 27. पर्ल के $ * चर का क्या उपयोग किया जाता था?
- 28. एमडी 5 हैशिंग सी #
- 29. लोकैलिटी सेंसिटिव हैशिंग - आर
- 30. क्या कोई पोर्टेबल पर्ल है?
तुम क्या करने कोशिश कर रहे हैं? क्या आप कुछ कोड का उदाहरण प्रदान कर सकते हैं जो काम नहीं कर रहा है? –
कोई भी कुंजी जो टक्कर पैदा करेगी :) – Jean
कोई भी दो कुंजी नहीं है जो हमेशा टकराएगी। आवश्यक होने पर हैशिंग को यादृच्छिक रूप से परेशान किया जाता है। – ikegami