Sobes.tech
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.