Calculadora hash MurmurHash3
Digite Hello, world! e receba c0363e43: o hash MurmurHash3 x86 de 32 bits dos seus 13 bytes com a seed padrão 0. Serve para conferir tabelas hash, chaves de particionamento ou valores de teste, nunca para proteger senhas. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Texto
- Hello, world!
- Resultado
- c0363e43
- Murmur3
- c0363e43
- Hex
- c0363e43
- Semente
- 0
MurmurHash3 é um hash não criptográfico rápido projetado por Austin Appleby para tabelas hash, chaves de particionamento, filtros bloom e impressões digitais de conteúdo em que velocidade e boa distribuição importam mais do que resistência a colisões contra um adversário. A variante x86 de 32 bits, amplamente usada, mistura a mensagem em blocos de quatro bytes com constantes publicadas, dobra uma cauda curta e termina com uma mistura final sensível ao comprimento, produzindo uma única palavra de trinta e dois bits sem sinal. Esta ferramenta de hash MurmurHash3 aceita texto não vazio, codifica-o como UTF-8, aplica um seed opcional no intervalo completo de trinta e dois bits sem sinal e devolve o digest hex junto com o rótulo do algoritmo, o seed, a contagem de bytes e um resumo curto.
O que o MurmurHash3 x86 de 32 bits calcula e por que o seed importa
MurmurHash3 x86 de 32 bits trata cada mensagem como uma sequência ordenada de octetos. O registrador do hash é inicializado com o seed fornecido pelo chamador, que vale zero quando omitido.
O fluxo é processado em blocos de quatro bytes little-endian: cada bloco é multiplicado pela constante c c nove e dois d cinco um, rotacionado à esquerda quinze bits, multiplicado por um b oito sete três cinco nove três e misturado no hash corrente com uma rotação à esquerda de treze bits e um multiplicar-somar com cinco e e seis cinco quatro seis b seis quatro.
Quaisquer um a três bytes de cauda restantes são misturados com as mesmas constantes antes de um passo de finalização que faz xor do comprimento total, aplica duas multiplicações de avalanche com oito cinco e b c a seis b e c dois b dois a e três cinco, e intercala deslocamentos à direita.
Checagens bem conhecidas incluem a string ASCII foo com seed zero produzindo f seis a cinco c quatro dois zero, e Hello vírgula espaço world exclamação com seed zero produzindo c zero três seis três e quatro três. Alterar o seed altera o digest dos mesmos bytes, de forma intencional para conjuntos multi-hash e mapas particionados.
Como MurmurHash3 não é resistente a colisões contra um atacante motivado, não é chaveado para segredo e não serve para senhas nem assinaturas, trate-o como identificador de conteúdo rápido ou misturador de tabela hash—não como prova de autenticidade. Prefira digests da família SHA quando a intenção de busca for hash criptográfico e não um hash não criptográfico MurmurHash3.
Onde um hash MurmurHash3 é útil
Autores de runtimes de linguagem e estudantes de sistemas usam uma calculadora de hash MurmurHash3 para verificar misturas de bloco e passos de finalização feitos à mão contra constantes publicadas sem escrever um loop de avalanche completo em cada linguagem. Plataformas de ensino e plugins LMS precisam de um oráculo determinístico que rejeite entrada vazia e seeds ruins em vez de envolver em silêncio, para que autoavaliadores distingam erros de configuração de digests reais.
Sites de conteúdo que ranqueiam por hash MurmurHash3 ou calculadora murmurhash3 se beneficiam de uma ferramenta ao vivo cujo caminho gratuito coincide byte a byte com a automação paga no mesmo módulo puro. Falhas de validação nunca consomem saldo após a rejeição. Combine com landings de FNV-1, Adler-32, CRC ou hash criptográfico apenas quando a intenção de busca sair de MurmurHash3—mantenha esta página focada em MurmurHash3 x86 de 32 bits para que a intenção SEO permaneça nítida e não canibalize landings de checksum ou digest relacionados.
Casos de uso
Chaves de tabela hash e sharding
Gere chaves hex estáveis MurmurHash3-x86-32 para strings curtas usadas como buckets de mapa, ids de shard ou partições de feature flag, com seed opcional para layouts multi-hash.
Demos de sala de aula de MurmurHash3
Professores mostram os valores clássicos de foo e Hello, world! com seed zero e deixam os alunos recalcular outras strings curtas sem instalar um módulo nativo.
Perguntas frequentes
Quais valores de seed são permitidos?
O seed deve ser um inteiro de 0 a 4294967295 inclusive. Omita-o para usar 0.
O que acontece se o texto estiver vazio?
É exigida uma string não vazia; entrada vazia não é tratada como hash bem-sucedido.
A calculadora MurmurHash3 é gratuita?
A ferramenta do navegador roda grátis no seu dispositivo.
MurmurHash3 é um hash criptográfico?
Não. MurmurHash3 é um hash não criptográfico rápido para tabelas hash e chaves de conteúdo. Use SHA-256 ou similar quando precisar de resistência a colisões ou autenticação.
Mudar a seed muda o hash MurmurHash3?
Sim. O mesmo texto gera um hash diferente para cada seed, e isso é proposital: permite montar vários hashes independentes para um filtro bloom ou um mapa particionado. Se deixar a seed vazia, é usado 0.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
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.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/enc/murmur3 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello, world!"}'const res = await fetch("https://api.kit.forhosting.com/enc/murmur3", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello, world!"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/murmur3",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello, world!"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/murmur3", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello, world!"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello, world!"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/murmur3", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"text": "Hello, world!"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.murmur3",
"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.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Entrada vazia e seeds inválidos são rejeitados com invalid_input para que ninguém confunda um campo ausente ou um seed ruim com um hash real.
Contrato de entrada, validação de seed e formato da resposta JSON
Quando seed é omitido, o algoritmo usa zero. A string é codificada como UTF-8 antes do loop Murmur, de modo que caracteres multibyte contribuem com cada byte da unidade de código exatamente como um runtime faria ao hashear o mesmo fluxo UTF-8. Fixe tanto um caminho de sucesso quanto um erro de seed inválido na integração contínua para que mudanças acidentais de constantes ou rotações não sejam publicadas sem aviso. Campos nulos opcionais são omitidos em vez de emitidos como null, conforme o contrato do renderizador declarativo para formulários web limpos. Envie um corpo JSON com um campo de string obrigatório chamado text: qualquer sequência não vazia de caracteres que você deseja hashear. Alias input, value, s, data, message e payload são aceitos para o mesmo campo, de modo que stubs de SDK e posts de formulário permaneçam flexíveis. O campo opcional seed é um inteiro de zero até quatro bilhões duzentos e noventa e quatro milhões novecentos e sessenta e sete mil duzentos e noventa e cinco inclusive (o intervalo completo de trinta e dois bits sem sinal); alias salt e init são aceitos. Text ausente, valor não string ou string vazia falham com invalid_input e mensagem clara de que é exigida string não vazia; essas falhas não são cobradas na API pré-paga. Um seed inválido—não numérico, fracionário, booleano, negativo ou maior que dois elevado a trinta e dois menos um—também falha com invalid_input e mensagem explícita de seed inválido para que operadores corrijam a configuração sem wrap modular silencioso. Em sucesso o corpo inclui result, murmur3 e hex com o mesmo digest hexadecimal de oito dígitos minúsculos; seed com o valor usado; algorithm fixo em MurmurHash3-x86-32; input_bytes igual ao comprimento UTF-8; text ecoando a entrada; e message resumindo a contagem de bytes, o seed e o resultado hex.
Onde uma API de hash MurmurHash3 agrega valor e como funciona o preço
Use a ferramenta gratuita no navegador para checagens pontuais; chame a API pré-paga do KIT a partir de backends, funções serverless e SDKs quando precisar de um contrato estável sob saldo a US$ 0,002 por item bem-sucedido. Mantenha payloads em tamanhos de texto ordinários adequados a uma chamada de item em um isolate de Worker; esta ferramenta é para strings curtas e trechos de protocolo, não blobs binários de vários megabytes.
Casos de integração
Fixtures de CI para helpers de hash não criptográfico
Pipelines fixam saídas hex determinísticas de MurmurHash3 e o erro de seed inválido para que mudanças acidentais de constantes, rotação ou wrap falhem de imediato.
Perguntas técnicas
Como calcular um hash MurmurHash3 de um texto?
Envie JSON com um campo de string não vazio text e seed opcional (uint32, padrão 0). A API codifica a string em UTF-8, executa MurmurHash3 x86 de 32 bits e devolve o hash como oito dígitos hex minúsculos em result, murmur3 e hex.