Miklix

Калькулятор хэш-кода Fowler-Noll-Vo FNV1a-64

Опубликовано: 17 февраля 2025 г. в 21:47:09 UTC

Калькулятор хэш-кода, использующий хэш-функцию Фаулера-Ноля-Во 1a 64 бит (FNV1a-64) для вычисления хэш-кода на основе введенного текста или загрузки файла.

Эта страница была переведена с английского языка для того, чтобы сделать ее доступной как можно большему числу людей. К сожалению, машинный перевод еще не является совершенной технологией, поэтому возможны ошибки. Если вы хотите, вы можете просмотреть оригинальную английскую версию здесь:

Fowler-Noll-Vo FNV1a-64 Hash Code Calculator

64-битная хэш-функция FNV-1a является частью семейства хэш-функций Fowler–Noll–Vo (FNV), разработанных для быстрого хэширования с сохранением хорошего распределения хэш-значений. Она обычно используется в таких приложениях, как хэш-таблицы, контрольные суммы и поиск данных. Она создает 64-битный (8-байтовый) хэш-код, часто представленный в виде 16-значного шестнадцатеричного числа.

Вариант FNV-1a представляет собой улучшенную версию оригинальной функции FNV-1 с более высоким уровнем безопасности.

Полное раскрытие информации: я не писал конкретную реализацию хэш-функции, используемой на этой странице. Это стандартная функция, входящая в состав языка программирования PHP. Я лишь сделал веб-интерфейс, чтобы сделать ее общедоступной здесь для удобства.


Вычислите новый хэш-код

Данные, переданные или загруженные через эту форму, будут храниться на сервере только в течение времени, необходимого для генерации запрашиваемого хэш-кода. Они будут удалены непосредственно перед тем, как результат будет возвращен вашему браузеру.

Исходные данные:



Представленный текст имеет кодировку UTF-8. Поскольку хэш-функции оперируют двоичными данными, результат будет отличаться от того, если бы текст был в другой кодировке. Если вам нужно вычислить хэш текста в определенной кодировке, вам следует загрузить файл.



О 64-битном алгоритме хэширования Fowler-Noll-Vo FNV-1a

Я не математик, но я попытаюсь объяснить эту хэш-функцию, используя аналогию, которую могут понять мои коллеги-нематематики. Если вы предпочитаете научно правильное, пугающе-математическое объяснение, я уверен, вы сможете найти его где-нибудь еще ;-)

Во-первых, давайте представим алгоритм FNV-1 как рецепт приготовления особого смузи. Каждый добавляемый вами ингредиент (например, фрукты, молоко или мед) представляет собой фрагмент данных — например, буквы, цифры или даже целый файл.

Теперь цель состоит в том, чтобы смешать эти ингредиенты очень специфическим образом, так что даже самое маленькое изменение в рецепте (например, добавление одной дополнительной черники) делает вкус смузи совершенно другим. Вот как работают хэш-функции — они создают уникальный «аромат» (или хэш-значение) для каждого уникального набора ингредиентов (или входных данных).

Алгоритм FNV-1 делает это в несколько этапов:

Шаг 1: Начните с базы (смещенная база)

Представьте, что вы заливаете в блендер специальную основу для смузи. Эта основа всегда одна и та же, независимо от того, какие ингредиенты вы добавляете. В FNV-1 это называется «базис смещения» — просто причудливое начальное число.

Шаг 2: Добавьте ингредиенты по одному (обработка данных)

Теперь вы начинаете добавлять ингредиенты по одному за раз — скажем, клубнику, затем банан, затем немного меда. Каждый из них представляет собой байт данных.

Шаг 3: Смешайте с секретным множителем (FNV Prime)

После добавления каждого ингредиента вы нажимаете кнопку смешивания, но вот в чем подвох: блендер умножает все на секретное «магическое число», называемое FNV prime. Это помогает смешивать все очень хорошо.

Шаг 4: Добавьте немного магии (операция XOR)

Перед добавлением следующего ингредиента вы посыпаете его немного волшебной пыльцой (это операция XOR). Это как переворачивание вкуса неожиданным образом, гарантируя, что даже небольшие изменения будут иметь большое значение.

Шаг 5: Повторяйте до завершения.

Вы продолжаете смешивать и добавлять магию после каждого нового ингредиента, пока не измельчите все.

Шаг 6: Финальный коктейль (хэш-значение)

Когда вы закончите, выливаете смузи. Окончательный вкус (хэш-значение) уникален для этой точной комбинации ингредиентов. Если бы вы добавили хотя бы одну дополнительную чернику, вкус был бы совершенно другим.

Представленная здесь версия — это улучшенная версия FNV-1a 64 бит. Если вам нужна оригинальная версия, у меня также есть калькулятор для нее: Калькулятор хэш-кода Fowler-Noll-Vo FNV1-64

Поделиться на BlueskyПоделиться на FacebookПоделиться на LinkedInПоделиться на TumblrПоделиться на XПоделиться на LinkedInЗакрепить на Pinterest

Миккель Банг Кристенсен

Об авторе

Миккель Банг Кристенсен
Миккель - создатель и владелец сайта miklix.com. Он имеет более чем 20-летний опыт работы в качестве профессионального программиста/разработчика программного обеспечения и в настоящее время работает на полную ставку в крупной европейской IT-корпорации. Когда он не ведет блог, то тратит свое свободное время на огромное количество интересов, хобби и занятий, что в некоторой степени отражается в разнообразии тем, освещаемых на этом сайте.