Хэш MurmurHash3 (32-бит) онлайн
Один из самых быстрых некриптографических хэшей — стандарт в хэш-таблицах и шардировании. Считается прямо в браузере — текст никуда не отправляется.
Вычислить MurmurHash3 (32-бит)
Результат пересчитывается сам, пока вы печатаете. В режиме «По строкам» пустые строки тоже хэшируются — результат всегда совпадает по числу строк со входом. Нужна другая функция — на полной странице калькулятора их 32.
История MurmurHash3
MurmurHash создал Остин Эплби — название описывает суть операций внутри (multiply + rotate = «murmur»). Первая версия вышла около 2008 года, а третья, MurmurHash3 (2011), закрепилась как одна из самых используемых некриптографических хэш-функций в индустрии — от распределённых баз данных до поисковых систем.
Автор прямо и многократно подчёркивал: MurmurHash — не криптографический алгоритм, он даже не пытался проходить проверку на устойчивость к целенаправленным атакам. Зато по скорости и качеству распределения на случайных данных он долго оставался эталоном сравнения для новых некриптографических хэшей — в том числе для xxHash, появившегося позже как более быстрая альтернатива.
Как устроен алгоритм
32-битный вариант MurmurHash3 обрабатывает вход блоками по 4 байта. Каждый блок умножается на константу c1, циклически сдвигается на 15 бит, умножается на константу c2, а затем через XOR подмешивается в накопленный хэш, который сам циклически сдвигается на 13 бит и обновляется по формуле hash × 5 + 0xe6546b64. Остаток данных короче 4 байт (если длина строки не кратна четырём) обрабатывается отдельно упрощённым способом. В самом конце выполняется этап финализации (fmix) — серия XOR со сдвигом и умножений на константы, специально подобранная, чтобы даже один изменённый бит входа полностью «перемешивал» весь результат.
Характеристики
| Параметр | Значение |
|---|---|
| Длина хэша | 32 бита (8 hex-символов) — есть и 128-битные варианты |
| Размер блока обработки | 4 байта |
| Операции | умножение, циклический сдвиг, XOR |
| Тип | Некриптографический хэш |
| Автор | Остин Эплби, 2011 (версия 3) |
Где применяется
- Распределённые системы — Apache Cassandra, Hadoop, шардирование и консистентное хэширование
- Поисковые системы и индексы (Elasticsearch/Lucene) — фильтры Блума, быстрое сравнение
- Redis-модули и другие движки, где важна скорость хэширования ключей
Криптостойкость
Автор алгоритма прямо указывает: MurmurHash3 не предназначен для криптографии и не устойчив к целенаправленному подбору коллизий — только для доверенных данных, где скорость важнее защиты от атак.