Miklix

Calculadora de código de hash Fowler-Noll-Vo FNV1a-32

Publicado: 18 de fevereiro de 2025 às 00:09:41 UTC

Calculadora de código hash que utiliza a função hash Fowler-Noll-Vo 1a de 32 bits (FNV1a-32) para calcular um código hash com base na introdução de texto ou no carregamento de ficheiros.

Esta página foi traduzida automaticamente do inglês para a tornar acessível ao maior número possível de pessoas. Infelizmente, a tradução automática ainda não é uma tecnologia aperfeiçoada, pelo que podem ocorrer erros. Se preferir, pode ver a versão original em inglês aqui:

Fowler-Noll-Vo FNV1a-32 Hash Code Calculator

A função hash FNV-1a de 32 bits faz parte da família de funções hash Fowler–Noll–Vo (FNV), concebida para um hash rápido, mantendo uma boa distribuição dos valores de hash. É comummente utilizado em aplicações como tabelas de hash, checksums e pesquisas de dados. Produz um código hash de 32 bits (4 bytes), geralmente representado como um número hexadecimal de 8 dígitos.

A variante FNV-1a é uma versão melhorada da função FNV-1 original com melhor segurança.

Divulgação completa: eu não escrevi a implementação específica da função hash usada nesta página. Trata-se de uma função padrão incluída na linguagem de programação PHP. Apenas criei a interface Web para a tornar publicamente disponível aqui por conveniência.


Calcular o novo código Hash

Os dados enviados ou os ficheiros carregados através deste formulário só serão mantidos no servidor durante o tempo necessário para gerar o código hash solicitado. Serão eliminados imediatamente antes de o resultado ser devolvido ao seu browser.

Dados de entrada:



O texto enviado é codificado em UTF-8. Uma vez que as funções de hash operam em dados binários, o resultado será diferente do que se o texto estivesse noutra codificação. Se precisar de calcular um hash de um texto numa codificação específica, deve carregar um ficheiro.



Sobre o algoritmo de hash Fowler-Noll-Vo FNV-1a de 32 bits

Não sou matemático, mas tentarei explicar esta função hash usando uma analogia que os meus colegas não matemáticos possam compreender. Se preferir uma explicação cientificamente correta e assustadoramente matemática, tenho a certeza de que poderá encontrá-la noutro lugar ;-)

Primeiro, vamos pensar no algoritmo FNV-1 como uma receita para fazer um batido especial. Cada ingrediente adicionado (como fruta, leite ou mel) representa um dado - como letras, números ou até mesmo um ficheiro inteiro.

Agora, o objetivo é misturar estes ingredientes de uma forma muito específica para que até a mais pequena alteração na receita (como adicionar um mirtilo extra) faça com que o sabor do batido seja completamente diferente. É assim que funcionam as funções hash: criam um "sabor" (ou valor hash) único para cada conjunto único de ingredientes (ou dados de entrada).

A forma como o algoritmo FNV-1 o faz é um processo de várias etapas:

Passo 1: Comece com uma base (base offset)

Pense nisto como se estivesse a deitar uma base especial de batido no seu liquidificador. Esta base é sempre a mesma, independentemente dos ingredientes que adiciona. No FNV-1, isto é chamado de "base de compensação" - apenas um número inicial sofisticado.

Passo 2: Adicionar os ingredientes um a um (processamento de dados)

Agora começa a adicionar os ingredientes, um de cada vez - digamos, um morango, depois uma banana e depois um pouco de mel. Cada um deles representa um byte de dados.

Passo 3: Misture com um multiplicador secreto (o FNV Prime)

Depois de adicionar cada ingrediente, carrega no botão de misturar, mas aqui está a diferença: o liquidificador multiplica tudo por um "número mágico" secreto chamado FNV primo. Ajuda a misturar as coisas muito bem.

Passo 4: Adicione uma pitada de magia (operação XOR)

Antes de adicionar o próximo ingrediente, polvilha-se um pouco de pó mágico (esta é a operação XOR). É como mudar o sabor de formas inesperadas, garantindo que até pequenas mudanças fazem uma grande diferença.

Passo 5: repita até terminar

Continue a misturar e a polvilhar magia após cada novo ingrediente até processar tudo.

Passo 6: Smoothie final (valor de hash)

Quando terminar, verta o batido. O sabor final (o valor de hash) é exclusivo daquela combinação exata de ingredientes. Se tivesse adicionado pelo menos um mirtilo a mais, o sabor seria completamente diferente.

A versão aqui apresentada é a versão melhorada do FNV-1a de 32 bits. Se precisar da versão original, também tenho uma calculadora para isso: Calculadora de código de hash Fowler-Noll-Vo FNV1-32

Partilhar no BlueskyPartilhar no FacebookPartilhar no LinkedInPartilhar no TumblrPartilhar em XPartilhar no LinkedInFixar no Pinterest

Mikkel Bang Christensen

Sobre o autor

Mikkel Bang Christensen
Mikkel é o criador e proprietário do miklix.com. Tem mais de 20 anos de experiência como programador informático/desenvolvedor de software profissional e trabalha atualmente a tempo inteiro para uma grande empresa europeia de TI. Quando não está a escrever no blogue, dedica o seu tempo livre a um vasto leque de interesses, passatempos e actividades, que podem, em certa medida, refletir-se na variedade de tópicos abordados neste sítio Web.