Re: [mu ComputerScience] hash functions

From: Tom Poindexter (
Date: Sat Mar 18 2000 - 21:02:35 CET

On Sat, Mar 18, 2000 at 06:10:23PM +0100, Michele Andreoli wrote:
> I'm interested to hash algoritms and so on. Please, anyone know
> an URL suitable to this kind of lecture?

I don't know of a single page, but you can find many by searching Google,
Altavista, etc. Here are a few:

There's also quite a bit of discussion of hashes in crypto research,
notable, SHA (secure hash algorithm) and MD5. Note that my Tcl Add-on
floppy for muLinux has an implementation of MD5.

I also like this comment from the Tcl source code (tclHash.c):
     * I tried a zillion different hash functions and asked many other
     * people for advice. Many people had their own favorite functions,
     * all different, but no-one had much idea why they were good ones.
     * I chose the one below (multiply by 9 and add new character)
     * because of the following reasons:
     * 1. Multiplying by 10 is perfect for keys that are decimal strings,
     * and multiplying by 9 is just about as good.
     * 2. Times-9 is (shift-left-3) plus (old). This means that each
     * character's bits hang around in the low-order bits of the
     * hash value for ever, plus they spread fairly rapidly up to
     * the high-order bits to fill out the hash value. This seems
     * works well both for decimal and non-decimal strings.

and the actual code is:

static unsigned int
    register CONST char *string;/* String from which to compute hash value. */
    register unsigned int result;
    register int c;
    result = 0;
    while (1) {
        c = *string;
        if (c == 0) {
        result += (result<<3) + c;
    return result;

Tom Poindexter
To unsubscribe, e-mail:
For additional commands, e-mail:

This archive was generated by hypermail 2.1.6 : Sat Feb 08 2003 - 15:27:13 CET