Хеш-функция — это математическая функция, которая преобразует входные данные произвольного размера в выходное значение фиксированного размера, называемое хешем или дайджестом. Свойства хеш-функции включают:
- Детерминированность: Одинаковые входные данные всегда порождают одинаковый хеш.
- Вычислительная эффективность: Вычисление хеша должно быть быстрым.
- Устойчивость к коллизиям: Крайне трудно подобрать два различных входных значения, дающих одинаковый хеш (слабая коллизионная стойкость), или найти входное значение, соответствующее заданному хешу (стойкость к прообразу).
Применяется в Ruby для:
- Реализации хеш-таблиц (Hash): Для быстрого поиска, вставки и удаления элементов по ключу.
- Криптографии: Для проверки целостности данных (контрольные суммы), цифровых подписей.
- Кеширования: Для идентификации уникальных данных.
Пример использования встроенных хеш-функций в Ruby:
ruby