Calculadora de código hash Fowler-Noll-Vo FNV1-32
Publicado: 18 de fevereiro de 2025 às 00:15:57 UTC
Calculadora de código hash que usa a função de hash Fowler-Noll-Vo 1 de 32 bits (FNV1-32) para calcular um código hash com base na entrada de texto ou no upload de arquivo.Fowler-Noll-Vo FNV1-32 Hash Code Calculator
A função hash FNV-1 de 32 bits faz parte da família de funções hash Fowler–Noll–Vo (FNV), projetada para hash rápido, mantendo uma boa distribuição de valores hash. É comumente usada em aplicativos como tabelas hash, somas de verificação e pesquisas de dados. Ela produz um código hash de 32 bits (4 bytes), geralmente representado como um número hexadecimal de 8 dígitos.
Divulgação completa: não escrevi a implementação específica da função hash usada nesta página. Ela é uma função padrão incluída na linguagem de programação PHP. Apenas criei a interface da Web para disponibilizá-la publicamente aqui por conveniência.
Sobre o algoritmo de hash Fowler-Noll-Vo FNV-1 de 32 bits
Não sou matemático, mas tentarei explicar essa função hash usando uma analogia que meus colegas não matemáticos possam entender. Se você preferir uma explicação cientificamente correta e assustadoramente matemática, tenho certeza de que poderá encontrá-la em outro lugar ;-)
Primeiro, vamos pensar no algoritmo FNV-1 como uma receita para fazer um smoothie especial. Cada ingrediente que você adiciona (como frutas, leite ou mel) representa um pedaço de dados - como letras, números ou até mesmo um arquivo inteiro.
Agora, o objetivo é misturar esses ingredientes de uma forma bem específica para que até mesmo a menor mudança na receita (como adicionar um mirtilo extra) faça o smoothie ter um gosto completamente diferente. É assim que as funções hash funcionam - elas criam um "sabor" (ou valor hash) único para cada conjunto único de ingredientes (ou dados de entrada).
A maneira como o algoritmo FNV-1 faz isso é um processo de várias etapas:
Etapa 1: Comece com uma base (base offset)
Pense nisso como despejar uma base especial de smoothie no seu liquidificador. Essa base é sempre a mesma, não importa quais ingredientes você adicione. No FNV-1, isso é chamado de "base offset" - apenas um número inicial chique.
Etapa 2: Adicionar ingredientes um por um (processamento de dados)
Agora você começa a adicionar seus ingredientes, um de cada vez - digamos um morango, depois uma banana, depois um pouco de mel. Cada um deles representa um byte de dados.
Etapa 3: Misture com um multiplicador secreto (o FNV Prime)
Depois de adicionar cada ingrediente, você aperta o botão de misturar, mas aqui está a pegadinha: o liquidificador multiplica tudo por um "número mágico" secreto chamado FNV prime. Isso ajuda a misturar as coisas muito bem.
Etapa 4: Adicione uma pitada de magia (operação XOR)
Antes de adicionar o próximo ingrediente, você polvilha um pouco de pó mágico (essa é a operação XOR). É como inverter o sabor de maneiras inesperadas, garantindo que até pequenas mudanças façam uma grande diferença.
Etapa 5: repita até terminar
Continue misturando e polvilhando magia após cada novo ingrediente até processar tudo.
Etapa 6: Smoothie final (valor de hash)
Quando terminar, despeje o smoothie. O sabor final (o valor de hash) é único para aquela combinação exata de ingredientes. Se você tivesse adicionado ao menos um mirtilo extra, o sabor seria completamente diferente.
A versão apresentada aqui é a versão original FNV-1 32 bits. Há também uma versão melhorada FNV-1a 32 bits disponível: Calculadora de código hash Fowler-Noll-Vo FNV1a-32