function djb2gawk(str, n, i, hash, ascii) { hash = 5381 n = length(str) for(i = 1; i <= n; ++i) { char = substr(str, i, 1) ascii = alphanum(char) hash = (hash * 33 + ascii) % ((2^32) - 1) } return hash } function alphanum(char) { return index("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789", char) } BEGIN { str = "comp.lang.awk" print djb2gawk(str) }