Skip to content

Instantly share code, notes, and snippets.

@lmas lmas/djb2.go
Created Jun 12, 2017

What would you like to do?
djb2, a non-cryptographic hash function
package djb2
// For when you ever need to implement a dictionary hash function,
// that's good enough, simple and fast.
// Not cryptographicly secure!
// Source:
//func main() {
// fmt.Println(djb2("a"))
// fmt.Println(djb2("b"))
func djb2(s string) int64 {
var hash int64 = 5381
for _, c := range s {
hash = ((hash << 5) + hash) + int64(c)
// the above line is an optimized version of the following line:
//hash = hash * 33 + int64(c)
// which is easier to read and understand...
return hash

This comment has been minimized.

Copy link

commented Jul 5, 2019

Wikipedia does not have an article with this exact name.


This comment has been minimized.

Copy link
Owner Author

commented Jul 11, 2019

Guess that page was removed since I wrote this utility, 2 years ago or something

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.