Хэш MurmurHash3 (32-бит) онлайн — калькулятор и разбор алгоритма | lavarden.ru
Войти

Хэш 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 со сдвигом и умножений на константы, специально подобранная, чтобы даже один изменённый бит входа полностью «перемешивал» весь результат.

блок (4 байта) × c1 rotl 15 × c2 hash ^= блок; hash = rotl(hash,13) hash = hash × 5 + 0xe6546b64 след. блок финализация (fmix) → готовый хэш
«Murmur» = multiply + rotate — те же две операции повторяются для каждого 4-байтного блока

Характеристики

ПараметрЗначение
Длина хэша32 бита (8 hex-символов) — есть и 128-битные варианты
Размер блока обработки4 байта
Операцииумножение, циклический сдвиг, XOR
ТипНекриптографический хэш
АвторОстин Эплби, 2011 (версия 3)

Где применяется

Криптостойкость

⚠️

Автор алгоритма прямо указывает: MurmurHash3 не предназначен для криптографии и не устойчив к целенаправленному подбору коллизий — только для доверенных данных, где скорость важнее защиты от атак.

Пример

СтрокаHello, world!
MurmurHash3c0363e43
Пустая строка (seed=0)00000000