Fowler-Noll-Vo FNV1-64 Хеш код калкулатор
Публикувано: 17 февруари 2025 г. в 21:34:23 ч. UTC
Калкулатор на хеш код, който използва хеш функцията Fowler-Noll-Vo 1 64 bit (FNV1-64) за изчисляване на хеш код въз основа на въвеждане на текст или качване на файл.Fowler-Noll-Vo FNV1-64 Hash Code Calculator
64-битовата хеш функция FNV-1 е част от фамилията хеш функции Fowler–Noll–Vo (FNV), предназначена за бързо хеширане, като същевременно поддържа добро разпределение на хеш стойностите. Обикновено се използва в приложения като хеш таблици, контролни суми и търсене на данни. Той произвежда 64-битов (8-байтов) хеш-код, често представен като 16-цифрено шестнадесетично число.
Пълно разкритие: не съм написал конкретната реализация на хеш функцията, използвана на тази страница. Това е стандартна функция, включена в езика за програмиране PHP. Направих само уеб интерфейс, за да я направя публично достъпна тук за удобство.
Относно Fowler-Noll-Vo FNV-1 64-битов хеш алгоритъм
Не съм математик, но ще се опитам да обясня тази хеш функция, като използвам аналогия, която моите колеги не-математици могат да разберат. Ако предпочитате научно правилно, страшно математическо обяснение, сигурен съм, че можете да го намерите другаде ;-)
Първо, нека помислим за алгоритъма FNV-1 като рецепта за приготвяне на специално смути. Всяка съставка, която добавяте (като плодове, мляко или мед), представлява част от данните - като букви, цифри или дори цял файл.
Сега целта е да смесите тези съставки по много специфичен начин, така че дори и най-малката промяна в рецептата (като добавяне на една допълнителна боровинка) да направи вкуса на смутито напълно различен. Ето как работят хеш функциите - те създават уникален "вкус" (или хеш стойност) за всеки уникален набор от съставки (или входни данни).
Начинът, по който алгоритъмът FNV-1 прави това, е многоетапен процес:
Стъпка 1: Започнете с основа (офсетна основа)
Мислете за това като за наливане на специална основа за смути във вашия блендер. Тази основа е винаги една и съща, независимо какви съставки добавяте. В FNV-1 това се нарича "офсетна база" - просто фантастично начално число.
Стъпка 2: Добавяне на съставки една по една (обработка на данни)
Сега започвате да добавяте съставките си, една по една - да кажем ягода, след това банан, след това малко мед. Всеки от тях представлява байт данни.
Стъпка 3: Смесете с таен множител (FNV Prime)
След като добавите всяка съставка, натискате бутона за смесване, но тук е обратът: блендерът умножава всичко по тайно „магическо число“, наречено FNV prime. Това помага за смесването на нещата наистина добре.
Стъпка 4: Добавяне на Dash of Magic (операция XOR)
Преди да добавите следващата съставка, поръсвате малко магически прах (това е операцията XOR). Това е като преобръщане на вкуса по неочаквани начини, гарантирайки, че дори малките промени правят голяма разлика.
Стъпка 5: Повторете, докато приключите
Продължавате да смесвате и поръсвате магия след всяка нова съставка, докато не обработите всичко.
Стъпка 6: Крайно смути (хеш стойност)
Когато сте готови, изсипвате смутито. Крайният вкус (хеш-стойността) е уникален за тази точна комбинация от съставки. Ако бяхте добавили още една боровинка, щеше да има съвсем различен вкус.
Представената тук версия е оригиналната 64-битова версия на FNV-1. Налична е и подобрена 64-битова версия на FNV-1a: Fowler-Noll-Vo FNV1a-64 Хеш код калкулатор