Junior — Middle
Можеш ли да изброиш основните характеристики на хеш-функциите?
sobes.tech AI
Отговор от AI
Основни характеристики на хеш-функциите:
- Детерминираност: за едно и също входно значение, хеш-функцията винаги връща един и същи хеш.
- Бързина на изчисление: хеш-функцията трябва да се изчислява бързо за всякакви входни данни.
- Разпределение: хешовете трябва да се разпределят равномерно по целия диапазон от стойности, за да се минимизират колизиите.
- Устойчивост на колизии: вероятността различни входни данни да дадат един и същи хеш (колизия), трябва да бъде минимална.
- Однопосочност (за криптографски хеш-функции): по хеша не може да се възстановят оригиналните данни.
Пример в 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"))
}
Тук се използва хеш-функцията FNV, която бързо изчислява хеша на низ.