Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Is there a Cormen-like reference on Hashes and Hashing? This particular structure has seen little attention in my CS education for some reason but I'd like to learn more as they seem to be everywhere. I know Cormen covers it but I'm looking for something more specialized and in-depth.

share|improve this question
    
As far as I know, there aren't that many books on hashes and only hashes. I'm sure you can find a few, but they are not recognized as the "Bible". –  Dynamic May 7 '12 at 21:39
    
I don't really get your question. A hash is just a BLOB returned by a hash function. Do you want to know more about hash-functions?Are you talking about cryptographic hash functions, or the fast but insecure kind used in most hashtables? Or about Hashtables? –  CodesInChaos May 8 '12 at 9:28
5  
I assume that by Cormen you mean Thomas H. Cormen and thus are referring to Introduction to Algorithms. Its usually a good idea to link to such resources, as they may not be as widely known as you assume. –  Mark Booth May 8 '12 at 13:21

3 Answers 3

up vote 3 down vote accepted

I really enjoyed the book File Organization and Processing. Despite it's name, it's just a book of data structures. The first half is about hashing and various collision resolution methods, and later on there is coverage of some dynamic hashing algorithms.

It's a little old but it's still useful. There are step-by-step examples for each algorithm and answers to the exercises.

Disclaimer: I'm biased because the author was one of my CS professors.

share|improve this answer

Cormen is a little out of date these days. The wikipedia page has a good collection and discussion, but the leader these days for fast, non-cryptographic data access is murmur hash.

p.s. One might argue that new bibles aren't being created anymore these days. There are just very good pages on Wikipedia and Stack Overflow. :)

share|improve this answer
    
Which type of hash you need depends critically on the data being hashed (both in the normal case and in the abnormal case) and on the type of hash table being constructed. For example, hash functions that are strong against attack (abnormal case) tend to be slower with average data (normal case) and there can be external mechanisms to limit the damage in an abnormal case (e.g., overall limits on the total size of input data). –  Donal Fellows May 8 '12 at 14:13

My guess learning about hashes is not the same of learning about random number generators (rng) but its very similar field in a way of knowing what differ a real random number from a pseudo-random and the quality about randomness. You probably know about xor-ing an image to hide any kind of data that you could extract from it, so, thats my guess. You need some good seeds for a good hash and knowing about randomness could help.

share|improve this answer
    
An answer should fully address the question. The question here is about authoritative sources and reference material for information on hashes. Your answer doesn't mention any sources or material. I would encourage you to read the help center. Remember that Stack Exchange is not a forum - that these are answers not comments or tangents. –  MichaelT Dec 6 at 21:24

protected by gnat Dec 6 at 6:45

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.