Par exemple:
hash("HelloWorld") = 1234567
Existe-t-il une fonction intégrée qui pourrait le faire?
Merci.
Le paquet hash est utile pour cela. Notez que c'est une abstraction sur des implémentations de hachage spécifiques. Certains prêts à l'emploi se trouvent dans le paquet sous-répertoires .
Exemple:
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."))
}
(Aussi ici )
Production:
926844193
107706013
Voici une fonction que vous pouvez utiliser pour générer un numéro de hachage:
// FNV32a hashes using fnv32a algorithm
func FNV32a(text string) uint32 {
algorithm := fnv.New32a()
algorithm.Write([]byte(text))
return algorithm.Sum32()
}
J'ai rassemblé un groupe de ces fonctions de hachage utilitaires ici: https://github.com/shomali11/util
Tu trouveras FNV32
, FNV32a
, FNV64
, FNV65a
, MD5
, SHA1
, SHA256
et SHA512