2010-07-17 16 views
13

Ruby'nin karma fonksiyon algoritması nedir? 1901:Ruby hash işlevini ne işe yarar?

+4

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

+5

Neyin karma işlevi? Teller? Sayılar? Nesneler? – kennytm

+0

Sanırım bu gibi bir şey ifade ediyor. Http://www.ruby-doc.org/core-1.9.3/Bignum.html#method-i-hash – James

cevap

18

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).

+3

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. –

İlgili konular