Генератор xxHash
Вычисляйте контрольные суммы xxHash для любого текста с помощью XXH32, XXH64, XXH3-64 и XXH3-128 в одном окне или выберите один вариант. Инструмент кодирует ввод в UTF-8, применяет необязательное 32-битное начальное значение и возвращает дайджест в каноническом шестнадцатеричном формате, используемом xxhsum. Он помогает разработчикам проверять ключи кэша, начальные значения хеш-таблиц и конвейеры обработки данных, использующие эту чрезвычайно быструю некриптографическую хеш-функцию.
Часто задаваемые вопросы
Что такое xxHash?
xxHash — семейство очень быстрых некриптографических хеш-функций, созданное Yann Collet. XXH32 и XXH64 — классические варианты, а XXH3 — более новая разработка с 64-битным и 128-битным выходом. Функция используется в инструментах сжатия, базах данных и игровых движках.
Какие варианты вычисляет инструмент?
Инструмент вычисляет XXH32, XXH64, XXH3-64 и XXH3-128. Если выбраны все варианты, результаты отображаются вместе; в противном случае показывается только выбранный. Каждое значение выводится в шестнадцатеричном формате с порядком байтов от старшего к младшему, как в xxhsum.
Каковы контрольные значения для пустого ввода и abc?
При начальном значении 0 для пустого ввода получаются: 02cc5d05 для XXH32, ef46db3751d8e999 для XXH64, 2d06800538d394c2 для XXH3-64 и 99aa06d3014798d86001c324468d497f для XXH3-128. Для abc значения такие: 32d153ff, 44bc2cf5ad770999, 78af5f94892f3950 и 06b05ab6733a618578af5f94892f3950.
Для чего нужно начальное значение?
Начальное значение меняет исходное состояние, поэтому один и тот же текст дает разные хеши при разных значениях. Используйте его, чтобы получить результат, совпадающий с системой, которая хеширует данные с известным начальным значением. Инструмент принимает целые числа от 0 до 4294967295; по умолчанию используется 0.
Безопасен ли xxHash?
Нет. xxHash создан для высокой скорости и хорошего распределения, а не для защиты от злоумышленников. Любой может создать коллизии, поэтому для защиты целостности от подмены используйте SHA-256 или BLAKE3.
Что выбрать: XXH3 или XXH64?
XXH3 работает быстрее на современных процессорах, особенно с короткими входными данными, и рекомендуется для нового кода. XXH64 по-прежнему широко используется в существующих форматах, например в контрольной сумме кадра Zstandard, для которой берется часть значения XXH64.
Почему моя библиотека выводит байты в другом порядке?
Некоторые библиотеки выводят необработанные байты хеша в порядке от младшего к старшему вместо числа. Этот инструмент использует каноническое представление с порядком от старшего к младшему из спецификации xxHash, совпадающее с выводом xxhsum. Чтобы сравнить его с дампом в порядке от младшего к старшему, поменяйте порядок байтов.
Как кодируется текст?
Ввод хешируется как байты UTF-8 точно в том виде, в каком он был введен. Разные окончания строк и пробелы в конце дают разные хеши.
Можно ли хешировать файлы этим инструментом?
Нет, инструмент хеширует только вставленный текст. Для работы с файлами установите xxhsum и выполните xxhsum -H0, -H1, -H3 или -H2 для XXH32, XXH64, XXH3-64 и XXH3-128 соответственно.
Какой объем текста можно хешировать?
До 5 MiB текста на запрос. Все варианты вычисляются на сервере с помощью WebAssembly, а введенные данные не сохраняются.