Miklix

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

Publicado: 18 de fevereiro de 2025 às 00:09:41 UTC
Última atualização: 12 de janeiro de 2026 às 13:28:24 UTC

Calculadora de código de hash que utiliza a função de hash Fowler-Noll-Vo 1a 32 bits (FNV1a-32) para calcular um código de hash baseado na entrada de texto ou 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 de hash FNV-1a de 32 bits faz parte da família de funções de hash Fowler–Noll–Vo (FNV), concebida para um hashing rápido mantendo uma boa distribuição dos valores de hash. É frequentemente utilizado em aplicações como tabelas de hash, somas de verificação e consultas de dados. Produz um código hash de 32 bits (4 bytes), frequentemente representado como um número hexadecimal de 8 dígitos.

A variante FNV-1a é uma versão melhorada em relação à função original FNV-1, 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 de 32 bits FNV-1a de Fowler-Noll-Vo

Não sou matemático, mas vou tentar explicar esta função hash usando uma analogia que os meus colegas não-matemáticos possam compreender. Se preferes uma explicação cientificamente correta e matemática assustadora, tenho a certeza que a encontras noutro lado ;-)

Primeiro, vamos pensar no algoritmo FNV-1 como uma receita para fazer um batido especial. Cada ingrediente que adiciona (como frutas, leite ou mel) representa um dado – como letras, números ou até 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 mais um mirtilo) torne o batido completamente diferente. É assim que funcionam as funções de hash – criam um "sabor" (ou valor de hash) único para cada conjunto único de ingredientes (ou dados de entrada).

A forma como o algoritmo FNV-1 faz isto é um processo em vários passos:

Passo 1: Comece com uma base (Offset Basis)

Pensa nisto como deitar uma base especial de batido na tua liquidificadora. Esta base é sempre a mesma, independentemente dos ingredientes que adiciones. No FNV-1, isto chama-se "base de deslocamento" – apenas um número inicial sofisticado.

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

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

Passo 3: Misturar com um Multiplicador Secreto (o FNV Prime)

Depois de adicionar cada ingrediente, carregas no botão de misturar, mas aqui está a reviravolta: o liquidificador multiplica tudo por um "número mágico" secreto chamado FNV prime. Isto ajuda muito a variar as coisas.

Passo 4: Adicionar um toque 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 inverter o sabor de formas inesperadas, garantindo que até pequenas mudanças fazem uma grande diferença.

Passo 5: Repita até terminar

Continuas a bater e a polvilhar magia após cada novo ingrediente até teres processado tudo.

Passo 6: Smoothie Final (Valor de Hash)

Quando acabares, deitas o batido. O sabor final (o valor do hash) é único para essa combinação exata de ingredientes. Se tivesses adicionado sequer mais um mirtilo, o sabor seria completamente diferente.

A versão aqui apresentada é a versão melhorada FNV-1a de 32 bits. Se precisares da versão original, também tenho uma calculadora para isso: Link

Leitura adicional

Se gostou deste post, também pode gostar destas sugestões:


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

Mikkel Christensen

Sobre o autor

Mikkel 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.