Miklix

Calculadora de código Hash JOAAT

Publicado: 18 de fevereiro de 2025 às 00:19:58 UTC

Calculadora de código de hash que utiliza a função de hash Jenkins One At A Time (JOAAT) para calcular um código de 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:

JOAAT Hash Code Calculator

A função de hash JOAAT (Jenkins One At A Time) é uma função de hash não criptográfica concebida por Bob Jenkins, um cientista informático bem conhecido no domínio dos algoritmos de hash. É amplamente utilizada devido à sua simplicidade, velocidade e boas propriedades de distribuição, tornando-a eficaz para pesquisas em tabelas de hash, somas de controlo e indexação de dados. Produz um código hash de 32 bits (4 bytes), normalmente representado como um número hexadecimal de 8 dígitos.

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 JOAAT

Eu não sou matemático, mas vou tentar explicar esta função de hash usando uma analogia que os meus colegas não matemáticos possam entender. Se preferirem uma explicação cientificamente correta e totalmente matemática, tenho a certeza que a podem encontrar noutro sítio ;-)

Pense no JOAAT como se estivesse a fazer uma sopa especial. Você tem uma lista de ingredientes (esses são os dados de entrada, como uma palavra ou um arquivo), e você quer misturá-los de tal forma que mesmo que você mude apenas uma pequena coisa - como adicionar uma pitada extra de sal - o sabor da sopa mude completamente. Este "sabor" é o seu valor hash, um número único que representa o seu input.

A função JOAAT faz isso em quatro passos:

Etapa 1: Começando com um pote vazio (inicialização)

Começa-se com um pote de sopa vazio. No JOAAT, esse "pote" começa com o número 0.

Etapa 2: Adicionando os ingredientes um de cada vez (processando cada byte)

Agora, você adiciona os ingredientes um por um. Imagine que cada letra ou número nos seus dados é como adicionar um tempero diferente à panela.

  • Adicione o tempero (adicione o valor da letra à sua panela).
  • Mexa vigorosamente (misture duplicando o sabor com um movimento especial de agitação - isto é como uma "mudança" matemática).
  • Adicione um toque de surpresa (adicione uma pitada de aleatoriedade - esta é a operação XOR, que ajuda a baralhar a mistura).

Passo 3: Especiarias secretas finais (mistura final)

Depois de adicionar todos os seus ingredientes, faz mais algumas misturas secretas e agita as especiarias para garantir que o sabor é imprevisível. É aqui que o JOAAT efectua alguns passos finais de mistura e baralhamento para garantir que o resultado é único.

Passo 4: Teste de sabor (resultado)

Finalmente, prova-se a sopa - ou, no caso do JOAAT, obtém-se um número (o valor hash) que representa o sabor único da sua sopa. Mesmo a mais pequena alteração nos ingredientes (como mudar uma letra na sua entrada) dar-lhe-á um sabor completamente diferente (um número totalmente diferente).

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.