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.