Junior — Middle
Kun je de belangrijkste kenmerken van hash-functies opsommen?
sobes.tech AI
Antwoord van AI
Belangrijkste kenmerken van hash-functies:
- Deterministisch: voor dezelfde invoerwaarde geeft de hash-functie altijd dezelfde hash.
- Snelheid van berekening: de hash-functie moet snel berekend kunnen worden voor alle invoergegevens.
- Verdeling: hashes moeten gelijkmatig verdeeld worden over het bereik van waarden om botsingen te minimaliseren.
- Weerstand tegen botsingen: de kans dat verschillende invoer dezelfde hash (botsing) oplevert, moet minimaal zijn.
- Eénrichting (voor cryptografische hash-functies): het is niet mogelijk om de oorspronkelijke gegevens te herstellen uit de hash.
Voorbeeld in Go:
import (
"fmt"
"hash/fnv"
)
func hash(s string) uint32 {
h := fnv.New32a()
h.Write([]byte(s))
return h.Sum32()
}
func main() {
fmt.Println(hash("example"))
}
Hier wordt de FNV-hashfunctie gebruikt, die snel de hash van een string berekent.