Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re: Quick and Dirty Hash

by TedPride (Priest)
on Jun 22, 2006 at 04:36 UTC ( [id://556829]=note: print w/replies, xml ) Need Help??


in reply to Quick and Dirty Hash

There are a large number of hashing algorithms you could use. Most of them work better in C / C++ than Perl, however, since you really need unsigned numbers, and there doesn't seem to be a simple way to tell Perl you don't want a signed variable. The following should work ok for strings of more than a few characters:
use strict; use warnings; print hash('dfsdgogmoerigre'); BEGIN { my @c = (0..9, 'A'..'F'); my $c = $#c + 1; sub hash { my ($n, $r) = 0; for (split //, $_[0]) { $n = ord($_) + ($n << 6) + ($n << 16) - $n; } $n = abs($n); while ($n >= $c) { $r .= $c[$n % $c]; $n /= $c; } return $r; } }

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://556829]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (6)
As of 2024-04-19 16:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found