Sobes.tech
Junior — Middle

Kas saaksid loetleda hash-funktsioonide peamised omadused?

sobes.tech AI

Vastus AI-lt

Peamised omadused hash-funktsioonide:

  • Determinism: sama sisendväärtuse korral tagastab hash-funktsioon alati sama hash.
  • Kiire arvutamine: hash-funktsioon peab olema kiire arvutada mis tahes sisendandmete jaoks.
  • Jaotumine: hashid peaksid jaotuma ühtlaselt kogu väärtuste vahemikus, et minimeerida kokkupõrkeid.
  • Kokkupõrgete vastupidavus: tõenäosus, et erinevad sisendid annavad sama hash (kokkupõrge), peaks olema minimaalne.
  • Ühesuunalisus (krüptograafiliste hash-funktsioonide jaoks): hashist ei ole võimalik taastada algandmeid.

Näide Go keeles:

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"))
}

Siin kasutatakse FNV hash-funktsiooni, mis arvutab kiiresti stringi hash-väärtuse.