Calculadora hash djb2
Cole uma palavra e receba a impressão digital djb2 de Bernstein: hello dá 0f923099, ou 261238937 como número, o mesmo resultado do código dos livros. Serve para tabelas hash, chaves de cache e divisão estável em grupos, nunca para 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
- Hash em hex
- 0f923099
- Hash (inteiro)
- 261.238.937
- Hash em decimal
- 261238937
- Comprimento
- 5
djb2 é o hash clássico de string não criptográfico criado por Daniel J. Bernstein: começa em cinco mil trezentos e oitenta e um e, para cada caractere, multiplica o hash em curso por trinta e três e soma o código do caractere, mantendo apenas os trinta e dois bits baixos. Desenvolvedores ainda escolhem djb2 quando precisam de uma impressão digital rápida e determinística para tabelas hash, chaves de cache, mapas de deduplicação e material didático que deve coincidir com livros e trechos de código conhecidos. Esta capacidade aceita uma string de texto não vazia, executa exatamente esse algoritmo sobre unidades de código UTF-16 e devolve o residual de trinta e dois bits como oito dígitos hexadecimais em minúsculas mais o inteiro sem sinal correspondente.
O que é djb2 e quando basta um hash de string de 32 bits
Hashes não criptográficos trocam resistência a colisões por velocidade e simplicidade. djb2 é um dos compromissos mais copiados: a semente cinco mil trezentos e oitenta e um e o multiplicador trinta e três (muitas vezes escrito como deslocamento de cinco bits à esquerda mais o valor original) produzem um inteiro de trinta e dois bits bem espalhado para strings curtas comuns, sem tabelas, segredos nem dependências de plataforma.
Bernstein publicou a ideia na era de domínio público das utilidades de string em C; ainda aparece em runtimes de linguagens, motores de jogos e artigos porque alunos implementam em poucas linhas e ainda obtêm distribuição útil para mapas hash. Não é hash de senha, nem resumo de integridade de conteúdo, nem substituto de SHA-256 ou BLAKE quando um adversário puder escolher as entradas.
Casos de uso
Feature flags e buckets de roteamento
Projete strings de usuário ou inquilino em um espaço de trinta e dois bits para buckets A/B consistentes sem overhead criptográfico nem material secreto.
Perguntas frequentes
Como calculo um hash djb2?
Envie uma string não vazia no campo text.
Qual algoritmo e semente esta capacidade usa?
djb2 clássico de Daniel J. Bernstein: hash inicial 5381 e, para cada caractere, hash = hash * 33 + charCode, truncado a um valor de 32 bits sem sinal.
djb2 serve para senhas ou verificação de integridade?
Não. djb2 é uma impressão não criptográfica rápida para tabelas hash e ensino. Use um hash criptográfico moderno para senhas, assinaturas e integridade de conteúdo.
Por que meu resultado djb2 é diferente do de outra ferramenta?
Em geral, a outra ferramenta pula um passo da receita clássica. Esta começa em 5381, multiplica por 33, soma o código de cada caractere e, a cada passo, guarda só os 32 bits mais baixos sem sinal, que é como o código de referência chega a 0f923099 para hello.
Para que serve um hash djb2?
Para dar a qualquer texto um número rápido e repetível. Ele é usado para posicionar chaves em tabelas hash, montar chaves de cache, achar duplicados e dividir usuários em grupos de teste estáveis, quando a velocidade importa mais que a resistência a ataques.
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/djb2 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"hello"}'const res = await fetch("https://api.kit.forhosting.com/enc/djb2", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "hello"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/djb2",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "hello"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/djb2", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"hello"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"hello"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/djb2", 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"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.djb2",
"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
A entrada vazia é rejeitada com invalid_input para que quem chama não confunda um payload de comprimento zero com um hash real.
O que é djb2 e quando basta um hash de string de 32 bits
Este endpoint fixa o wrap clássico sem sinal de trinta e dois bits de modo que a palavra ASCII hello produz o residual familiar 0f923099, e a string test produz 7c9e6865, alinhado a implementações de referência comuns que truncam com cast sem sinal após cada passo de multiplicar e somar.
Contrato de entrada, rejeição de entrada vazia e campos de resposta
Números e booleanos são aceitos convertendo-os para a forma string antes do hash, o que mantém widgets de calculadora simples ergonômicos. Validação falha não é cobrada. O algoritmo é linear no comprimento da string e totalmente em memória; mantenha demos de navegador em strings de escala humana e fixe vetores conhecidos como hello igual a 0f923099 em integração contínua para que um refactor de uma linha não altere o contrato em silêncio. Envie por POST um corpo JSON com o campo de string obrigatório text. O valor deve ser uma string não vazia; text ausente, null ou string vazia falha com invalid_input e uma mensagem que relata entrada vazia ou ausente para que as interfaces de formulário destaquem o campo sem adivinhar. Em sucesso, o corpo inclui hash_hex como oito dígitos hexadecimais em minúsculas preenchidos com zeros à esquerda, hash_int como o inteiro sem sinal de zero a quatro bilhões duzentos e noventa e quatro milhões novecentos e sessenta e sete mil duzentos e noventa e cinco, hash_dec como o mesmo inteiro em texto decimal, length como a contagem de caracteres da string hasheada, algorithm fixo em djb2 e seed fixo em cinco mil trezentos e oitenta e um documentando o valor inicial clássico. Aceitam-se os aliases data, payload, value, input e string para o payload, para que clientes SDK reutilizem nomes de campo existentes.
Onde uma API de hash djb2 realmente vale a pena
Educadores e coaches de entrevista usam a mesma saída determinística para avaliar implementações de alunos do hash multiplicar-por-trinta-e-três sem montar uma fazenda de compiladores. Sites de conteúdo que competem por calculadora de hash djb2 ganham uma ferramenta ao vivo cujo caminho gratuito coincide byte a byte com o de automação. Equipes de backend automatizam a API em ferramentas de comissionamento que atribuem shards de cache, buckets de feature flag ou chaves de roteamento de log e fixam valores dourados de hash_hex para que uma migração de plataforma nunca reordene o tráfego por acidente. 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. Mantenha pedidos determinísticos, rejeite payloads vazios na borda e obtenha reprodutibilidade de livro-texto sem embutir trechos djb2 em cada microsserviço.
Casos de integração
Impressões digitais para tabelas hash e chaves de cache
Hasheie identificadores curtos com djb2 e armazene hash_hex ou hash_int como impressão compacta e agnóstica de linguagem para mapas, caches e atribuição de buckets.
Ensino e vetores de teste dourados
Afirme que o código do aluno ou da biblioteca produz hash_hex 0f923099 para hello e 7c9e6865 para test, para que portas de djb2 permaneçam alinhadas entre runtimes.
Perguntas técnicas
O que acontece se eu enviar texto vazio?
Texto vazio ou ausente falha com invalid_input e uma mensagem que relata entrada vazia. Essas falhas não são cobradas.
Quanto custa a ferramenta de hash djb2?
A ferramenta do navegador é gratuita. Pedidos API usam saldo pré-pago KIT a US$ 0,002 por chamada bem-sucedida; entrada inválida não é cobrada.