Ответ
Хеш-функция преобразует входные данные произвольной длины в строку фиксированной длины (хеш), которая обычно представляет собой уникальный цифровой отпечаток. Основные свойства:
- Детерминированность — одинаковые входные данные всегда дают одинаковый хеш.
- Быстрота — вычисление хеша происходит за константное время.
- Необратимость — по хешу нельзя восстановить исходные данные.
- Минимизация коллизий — разные входные данные должны давать разные хеши (хотя это не всегда возможно).
Пример в Kotlin:
val input = "Hello, world!"
val md5Hash = MessageDigest
.getInstance("MD5")
.digest(input.toByteArray())
.joinToString("") { "%02x".format(it) }
// Результат: "6cd3556deb0da54bca060b4c39479839"