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

Хэш xxHash64 онлайн

Разработан для предельной скорости на 64-битных платформах — используется в LZ4, ZFS, Hadoop. Считается прямо в браузере — текст никуда не отправляется.

Вычислить xxHash64

Результат пересчитывается сам, пока вы печатаете. В режиме «По строкам» пустые строки тоже хэшируются — результат всегда совпадает по числу строк со входом. Нужна другая функция — на полной странице калькулятора их 32.

История xxHash64

64-битный вариант того же алгоритма Яна Колле, что и xxHash32, — пересчитанный под 64-битную арифметику для полного использования возможностей современных процессоров. На 64-битных платформах xxHash64 обычно быстрее xxHash32 на больших объёмах данных, несмотря на «более тяжёлые» операции — потому что обрабатывает вдвое больше байт за одну машинную инструкцию.

Как устроен алгоритм

Логика идентична xxHash32, только в масштабе: четыре 64-битных аккумулятора вместо 32-битных, блок обработки — 32 байта (по 8 на каждый аккумулятор) вместо 16. Формула обновления та же по духу: умножение на простое число, циклический сдвиг, умножение на другое простое. После обработки всех блоков аккумуляторы объединяются в одно 64-битное число через сдвиги, умножения и XOR, дополнительно подмешивая длину входа, а затем проходит финальный этап avalanche.

4 ПАРАЛЛЕЛЬНЫХ 64-БИТНЫХ АККУМУЛЯТОРА, ПО 8 БАЙТ ВХОДА НА КАЖДЫЙ acc1: ×p2, rotl31, ×p1 acc2: та же формула acc3: та же формула acc4: та же формула объединение + длина входа avalanche (сдвиги × простые) → 64-битный результат
Та же схема, что у xxHash32, но 64-битная арифметика и вдвое больший блок на аккумулятор

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

ПараметрЗначение
Длина хэша64 бита (16 hex-символов)
Размер блока обработки32 байта (4 × 8 аккумулятора)
Операцииумножение, циклический сдвиг, XOR
ТипНекриптографический хэш
АвторЯн Колле

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

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

⚠️

Некриптографический хэш — как и весь xxHash, спроектирован для скорости, не для защиты от намеренной подделки.

Пример

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