Miklix

Fowler-Noll-Vo FNV1-64 Хеш код калкулатор

Публикувано: 17 февруари 2025 г. в 21:34:23 ч. UTC
Последна актуализация: 12 януари 2026 г. в 13:26:31 ч. 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. Направих само уеб интерфейс, за да я направя публично достъпна тук за удобство.


Изчисляване на нов хеш код

Предоставените данни или файловете, качени чрез този формуляр, се съхраняват на сървъра само толкова дълго, колкото е необходимо за генериране на искания хеш код. Те ще бъдат изтрити непосредствено преди резултатът да бъде върнат на вашия браузър.

Входни данни:



Подаденият текст е кодиран в UTF-8. Тъй като хеш-функциите работят с двоични данни, резултатът ще бъде различен от този, ако текстът е в друго кодиране. Ако трябва да изчислите хеш на текст в определено кодиране, вместо това трябва да качите файл.



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

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

Първо, нека си представим алгоритъма FNV-1 като рецепта за приготвяне на специално смути. Всяка съставка, която добавяте (като плодове, мляко или мед), представлява част от данните - като букви, цифри или дори цял файл.

Сега целта е тези съставки да се смесят по много специфичен начин, така че дори и най-малката промяна в рецептата (като добавянето на една допълнителна боровинка) да направи вкуса на смутито напълно различен. Ето как работят хеш функциите - те създават уникален „вкус“ (или хеш стойност) за всеки уникален набор от съставки (или входни данни).

Начинът, по който алгоритъмът FNV-1 прави това, е многоетапен процес:

Стъпка 1: Започнете с основа (офсетна основа)

Представете си това като наливане на специална основа за смути в блендера ви. Тази основа винаги е една и съща, независимо какви съставки добавяте. В FNV-1 това се нарича „офсетна основа“ - просто закачливо начално число.

Стъпка 2: Добавяне на съставките една по една (Обработка на данни)

Сега започвате да добавяте съставките си, една по една - да речем ягода, после банан, накрая малко мед. Всяка от тях представлява байт данни.

Стъпка 3: Смесете с таен множител (FNV Prime)

След като добавите всяка съставка, натискате бутона за блендер, но ето обрата: блендерът умножава всичко по тайно „магическо число“, наречено FNV просто число. Това помага нещата да се разбъркат наистина добре.

Стъпка 4: Добавете щипка магия (операция XOR)

Преди да добавите следващата съставка, поръсвате малко магически прах (това е операцията XOR). Все едно обръщате вкуса по неочаквани начини, като гарантирате, че дори малки промени ще окажат голямо влияние.

Стъпка 5: Повтаряйте, докато не приключите

Продължаваш да блендираш и поръсваш с магия след всяка нова съставка, докато не обработиш всичко.

Стъпка 6: Финално смути (хеш стойност)

Когато сте готови, изсипвате смутито. Крайният вкус (хаш стойността) е уникален за точно тази комбинация от съставки. Ако бяхте добавили дори една допълнителна боровинка, вкусът щеше да е съвсем различен.

Представената тук версия е оригиналната 64-битова версия на FNV-1. Налична е и подобрена 64-битова версия на FNV-1a: Връзка

Допълнително четене

Ако ви е харесала тази публикация, може да ви харесат и тези предложения:


Споделете в BlueskyСподелете във FacebookСподелете в LinkedInСподелете в TumblrСподелете в XСподелете в LinkedInЗакачи в Пинтерест

Микел Кристенсен

За автора

Микел Кристенсен
Микел е създател и собственик на сайта miklix.com. Той има над 20 години опит като професионален компютърен програмист/разработчик на софтуер и в момента работи на пълен работен ден в голяма европейска ИТ корпорация. Когато не пише в блога, той прекарва свободното си време в широк спектър от интереси, хобита и дейности, които до известна степен могат да бъдат отразени в разнообразието от теми, обхванати в този уебсайт.