Junior — Middle
Môžeš vymenovať hlavné vlastnosti hash funkcií?
sobes.tech AI
Odpoveď od AI
Hlavné vlastnosti hash funkcií:
- Deterministickosť: pre rovnakú vstupnú hodnotu hash funkcia vždy vráti rovnaký hash.
- Rýchlosť výpočtu: hash funkcia by mala byť rýchlo vypočítateľná pre akékoľvek vstupné dáta.
- Rozloženie: hashe by mali byť rovnomerne rozložené po celom rozsahu hodnôt, aby sa minimalizovali kolízie.
- Odolnosť voči kolíziám: pravdepodobnosť, že rôzne vstupy povedú ku rovnakému hashu (kolízii), by mala byť minimálna.
- Jednosmernosť (pre kryptografické hash funkcie): z hashu nie je možné získať pôvodné dáta.
Príklad v 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"))
}
Tu sa používa hash funkcia FNV, ktorá rýchlo vypočíta hash reťazca.