2012-11-27 9 views

Odpowiedz

47

Do tego pomocny jest pakiet hash. Zauważ, że jest to abstrakcja w stosunku do konkretnych implementacji skrótów. Niektóre gotowe produkty znajdują się w pakiecie subdirectories.

Przykład:

package main 

import (
     "fmt" 
     "hash/fnv" 
) 

func hash(s string) uint32 { 
     h := fnv.New32a() 
     h.Write([]byte(s)) 
     return h.Sum32() 
} 

func main() { 
     fmt.Println(hash("HelloWorld")) 
     fmt.Println(hash("HelloWorld.")) 
} 

(także here)


wyjściowa:

926844193 
107706013 
+0

Możliwe jest również użycie pojedynczej instancji i 'Write' /' Reset' zamiast tworzenia 'New32a' za każdym razem. Nie wiem, ile to kosztuje. Na przykład: https://play.golang.org/p/aUeNBo755g –

1

Oto funkcja można użyć do generowania numeru skrótu:

// FNV32a hashes using fnv32a algorithm 
func FNV32a(text string) uint32 { 
    algorithm := fnv.New32a() 
    algorithm.Write([]byte(text)) 
    return algorithm.Sum32() 
} 

Stworzyłam grupę tych funkcji użytkowych hash tutaj: https://github.com/shomali11/util

Znajdziesz FNV32, FNV32a, FNV64, FNV65a, MD5, SHA1, SHA256 i SHA512

Powiązane problemy