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
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.
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:
- Calculadora de código hash SHA3-384
- Calculadora de código hash HAVAL-160/3
- Calculadora de código hash SHA-224
