ForHosting KIT · Ferramentas para dev

Hash FNV-1a

Receba a impressão digital FNV-1a de qualquer texto, misturando cada byte antes de multiplicar: foobar dá bf9cf968 em 32 bits, ou dezesseis dígitos hexadecimais em 64 bits, uma etiqueta estável para tabelas hash, filtros bloom e chaves de cache. Grátis no seu navegador.

  • Grátis
  • Funciona no seu navegador
  • Sem cadastro
  • Seus dados não saem do seu aparelho
Use pelo WebAPIE-mailTelegramApp em breve
Se você digitar
Texto
foobar
Bits
32
Você obtém
Bits
32
Hash
bf9cf968
Hash (inteiro)
3.214.735.720
Bytes
6

FNV-1a é a forma alternada do hash Fowler–Noll–Vo: um resumo não criptográfico rápido construído a partir de uma base de deslocamento fixa, um primo escolhido com cuidado e um passo por byte de exclusive-or e depois multiplicação, popular em tabelas hash, filtros bloom e campos de impressão digital compactos. Desenvolvedores recorrem ao FNV-1a quando precisam de uma etiqueta estável de trinta e dois ou sessenta e quatro bits mais barata que um hash criptográfico e mais sensível à ordem do que uma soma simples.

O que FNV-1a significa e como os perfis de 32 e 64 bits diferem

Os hashes Fowler–Noll–Vo dobram uma mensagem em um residual de largura fixa partindo de uma base de deslocamento documentada e, para cada byte de entrada, primeiro fazem exclusive-or do byte no hash em curso e depois multiplicam por um primo escolhido para essa largura. A forma alternada FNV-1a aplica o exclusive-or antes da multiplicação; a forma antiga FNV-1 multiplica primeiro. Esta capacidade implementa apenas FNV-1a porque essa ordem é a que a maioria dos ecossistemas de linguagem e tutoriais de tabelas hash cita hoje.

Para sessenta e quatro bits a base é zero-x-c-b-f-dois-nove-c-e-quatro-oito-quatro-dois-dois-dois-três-dois-cinco e o primo é zero-x-um-zero-zero-zero-zero-zero-zero-zero-um-b-três, produzindo dezesseis dígitos hex. FNV-1a foi projetado para hashing rápido em tabelas e etiquetas de integridade leves; não é um hash criptográfico e não deve ser usado onde se exija resistência deliberada a colisões, armazenamento de senhas ou esquemas de assinatura. Se uma ferramenta de terceiros discordar nos mesmos bytes UTF-8, quase sempre está usando FNV-1 em vez de FNV-1a, uma largura diferente ou hasheando unidades UTF-16 em vez de bytes UTF-8.

Chaves de tabela hash e etiquetas de bucket

Calcule FNV-1a de strings curtas quando você precisar de uma impressão digital não criptográfica estável de 32 ou 64 bits para buckets de tabela, filtros bloom ou chaves de fragmento de cache.

Demonstrações de sala de aula e de suporte

Mostre a alunos e operadores como editar alguns caracteres altera o hex FNV-1a sem instalar utilitários locais ou bibliotecas criptográficas.

Qual é a diferença entre FNV-1a de 32 e de 64 bits?

Ambos usam o passo FNV-1a de exclusive-or e depois multiplicação em cada byte UTF-8, mas com bases e primos diferentes. Trinta e dois bits devolve oito dígitos hex; sessenta e quatro bits devolve dezesseis. O padrão é 32 quando bits é omitido.

O que acontece com entrada vazia?

Texto vazio é válido. A resposta define empty como true, hash como a base de deslocamento da largura escolhida (811c9dc5 para 32 bits, cbf29ce484222325 para 64 bits) e bytes como 0.

FNV-1a é um hash criptográfico?

Não. FNV-1a é um hash não criptográfico rápido para tabelas e impressões digitais leves. Não o use para senhas, assinaturas ou integridade resistente a colisões contra atacantes; use digests da família SHA nesses casos.

Por que outra ferramenta dá um hash FNV-1a diferente?

Com o mesmo texto, quase sempre a outra ferramenta usa FNV-1, que multiplica antes de misturar, outra largura, ou as unidades UTF-16 do texto em vez dos bytes UTF-8. Esta calcula sobre os bytes UTF-8 na ordem do FNV-1a.

Como um hash FNV-1a é calculado?

Ele parte de uma base fixa, 0x811c9dc5 em 32 bits. Para cada byte do texto, primeiro o byte é misturado ao valor acumulado com um ou exclusivo, depois o valor é multiplicado pelo primo 0x01000193, mantendo 32 bits.

Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.

POSThttps://api.kit.forhosting.com/enc/fnv1a

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

curl -X POST https://api.kit.forhosting.com/enc/fnv1a \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"foobar"}'
{
  "text": "foobar"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.fnv1a",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Esta ferramenta de hash FNV-1a aceita texto simples, serializa-o como UTF-8 e devolve uma cadeia hexadecimal em minúsculas—oito dígitos para o perfil de trinta e dois bits ou dezesseis para o de sessenta e quatro—mais uma forma inteira, o comprimento em bytes UTF-8, a largura escolhida e um indicador empty quando a string de origem tem comprimento zero. Nenhuma chamada de rede, sal aleatório ou relógio de parede entra no cálculo: cada caminho bem-sucedido é aritmética pura ao preço base publicado US$ 0,002.

O que FNV-1a significa e como os perfis de 32 e 64 bits diferem

Para trinta e dois bits a base é zero-x-oito-um-um-c-nove-d-c-cinco e o primo é zero-x-zero-um-zero-zero-zero-um-nove-três, produzindo uma string hex de oito dígitos em minúsculas. A entrada vazia deixa o residual igual à própria base de deslocamento, e este endpoint reporta empty como true para que os clientes distingam um branco deliberado de um campo ausente.

Contrato de entrada, campos de resposta e comportamento com entrada vazia

A string vazia é permitida de propósito: a identidade matemática do FNV-1a em zero bytes é a base de deslocamento, e pipelines que impressam campos opcionais precisam de um residual estável em vez de falha dura. Quando o comprimento de origem é zero, a resposta define empty como true, hash como o hex da base para a largura escolhida e bytes como zero. Não há seletor de modo para FNV-1, MD5, SHA ou CRC: se você precisar desses digests, use uma capacidade dedicada para que cada página corresponda a uma única intenção de busca e slug SEO. Envie um corpo JSON com o campo obrigatório text definido como a string que você deseja hashear. Os aliases input, value, s, string e content são aceitos para que formulários antigos e clientes curtos ainda vinculam. O bits opcional seleciona a largura: trinta e dois (padrão) ou sessenta e quatro; aliases width e bit_width são aceitos, e formas numéricas e de string funcionam. Números finitos e inteiros grandes são convertidos em string antes do hash; objetos, arrays, booleanos, null, Infinity e NaN geram invalid_input e não são cobrados. Para entrada não vazia empty é false, bytes iguala o comprimento UTF-8, hash é o digest hex em minúsculas sem prefixo zero-x, e hash_int carrega o mesmo valor como inteiro sem sinal para trinta e dois bits ou como string decimal para sessenta e quatro bits, de modo que o intervalo sem sinal completo permanece exato em JSON. Algorithm é sempre o rótulo FNV-1a; offset_basis e prime ecoam as strings de parâmetros da largura selecionada para que exemplos OpenAPI e respostas de suporte citem o perfil sem ambiguidade.

Onde uma API de hash FNV-1a agrega valor

Desenvolvedores colam chaves curtas, fragmentos de configuração e identificadores de cache em uma calculadora de hash FNV-1a quando precisam de um índice de bucket compacto de trinta e dois ou sessenta e quatro bits que coincida com um runtime de linguagem ou uma nota de protocolo legada. Engenheiros de suporte recalculam digests a partir do texto do ticket para confirmar que um dump colado não foi truncado nem recodificado em trânsito. Mantenha as cargas abaixo do teto de caracteres documentado, trate o campo hex como destino canônico de colagem, e você obtém valores FNV-1a reproduzíveis para documentação, SDKs, workers na borda e demos de sala de aula sem levantar um serviço de hash separado. Laboratórios educacionais usam o mesmo endpoint para mostrar que alterar um único caractere inverte muitos dígitos hex, ilustrando o comportamento de avalanche sem introduzir maquinaria criptográfica. Como a implementação é parse pura de nível A, cada chamada bem-sucedida custa o preço base publicado US$ 0,002 sem tokens de modelo e sem rede de saída; validação falha não consome saldo.

Vetores golden de CI e fixtures de entrada vazia

Fixe foobar → bf9cf968 (32 bits) e vazio → base de deslocamento para que a integração contínua pegue imediatamente FNV-1 vs FNV-1a ou deriva de codificação UTF-8.

Como calculo um hash FNV-1a de texto?

Envie JSON com text definido como sua string e bits opcional de 32 ou 64 (padrão 32). O campo hash devolve hex minúsculo do digest FNV-1a sobre bytes UTF-8; hash_int é o mesmo valor como inteiro sem sinal (número para 32 bits, string decimal para 64 bits).

Quanto custa a calculadora de hash FNV-1a?

A ferramenta no navegador é gratuita. Solicitações API usam saldo pré-pago KIT a US$ 0,002 por chamada bem-sucedida; entrada inválida não é cobrada.

Ver a documentação completa do KIT →