Ruby'nin karma fonksiyon algoritması nedir? 1901:Ruby hash işlevini ne işe yarar?
cevap
standart Yakut uygulaması bazı türleri (tamsayı, string) string.c itibaren
için Murmur hash kullanır
/* MurmurHash described in http://murmurhash.googlepages.com/ */
static unsigned int
hash(const unsigned char * data, int len, unsigned int h)
(bu fonksiyon içinde st_hash
olarak yeniden adlandırıldı gibi görünüyor unutmayın SVN gövdesi)
Kullanıldığı yeri öğrenmek için kaynak kodunda rb_memhash
'u arayın. Murmur2 hashını daha önce kendi projesinde kullandım, çok hızlı ve iyi kriptografik özelliklere sahip (ama kriptografik hash fonksiyonu olarak kullanılacak kadar iyi değil).
Murmur2 mükemmel bir dağıtıma sahiptir, ancak bu şifreleme karmaşası için gerekli olsa da, yeterli değil. Diğer bir deyişle, karma * kasıtlı * kurcalamaya karşı dirençli değildir. –
Ruby'nin resmi bir özelliği bile yok, bu yüzden doğru bir şekilde doğru cevap olduğundan şüpheliyim. Her durumda, bunu neden bilmeniz gerekiyor? – polygenelubricants
Neyin karma işlevi? Teller? Sayılar? Nesneler? – kennytm
Sanırım bu gibi bir şey ifade ediyor. Http://www.ruby-doc.org/core-1.9.3/Bignum.html#method-i-hash – James