Miklix

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

Публикувано: 17 февруари 2025 г. в 21:46:21 ч. UTC

Калкулатор на хеш код, който използва хеш функцията Fowler-Noll-Vo 1a 64 bit (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. Тъй като хеш-функциите работят с двоични данни, резултатът ще бъде различен от този, ако текстът е в друго кодиране. Ако трябва да изчислите хеш на текст в определено кодиране, вместо това трябва да качите файл.



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

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

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

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

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

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

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

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

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

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

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

Стъпка 4: Добавяне на Dash of Magic (операция XOR)

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

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

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

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

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

Представената тук версия е подобрената 64-битова версия на FNV-1a. Ако имате нужда от оригиналната версия, имам и калкулатор за това: Fowler-Noll-Vo FNV1-64 Хеш код калкулатор

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

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

За автора

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