Ответ
Хеш-значение — это результат работы хеш-функции, которая преобразует входные данные произвольного размера (объект, строку, файл) в целочисленное значение фиксированной длины.
Ключевые свойства:
- Детерминированность: Для одинаковых входных данных хеш всегда одинаков.
- Быстрота: Вычисление происходит за константное время (в идеале).
- Лавинный эффект: Малейшее изменение входных данных кардинально меняет хеш.
- Минимизация коллизий: Разные входные данные должны давать разные хеши (насколько это возможно).
Применение в Swift (протокол Hashable):
struct User: Hashable {
let id: Int
let email: String
}
let user1 = User(id: 1, email: "alex@example.com")
let user2 = User(id: 1, email: "alex@example.com")
print(user1.hashValue == user2.hashValue) // true
// Хеш-значение используется для быстрого поиска и сравнения в коллекциях:
let userSet: Set<User> = [user1, user2] // В множестве будет только один элемент
let scores: [User: Int] = [user1: 100] // User выступает в качестве ключа в словаре
Важно: Хеш-значение не гарантирует уникальности (возможны коллизии) и не предназначено для шифрования. Для криптографии используйте специализированные функции (SHA-256 через CryptoKit).