Calculadora checksum BSD
O texto «abc» dá um checksum BSD de 16556, ou 40ac em hexadecimal, em 1 bloco: o mesmo par que o antigo comando sum do Unix imprime no modo BSD. Útil para conferir scripts legados, etiquetas de fita e exercícios de livro. 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
- abc
- Resultado
- 40ac
- Soma de verificação
- 16.556
- Hex
- 40ac
- Decimal
- 16.556
O algoritmo clássico BSD sum é o checksum de dezesseis bits por rotação e soma usado pelo histórico comando Unix sum no modo BSD (muitas vezes invocado como sum -r em sistemas GNU). Diferente das verificações de redundância cíclica, ele atualiza um único registrador de dezesseis bits girando um bit à direita e somando cada byte da mensagem, e depois informa uma contagem de blocos em unidades de mil e vinte e quatro bytes. Engenheiros que comparam rótulos de fita legados, estudantes que reproduzem a saída de sum de um livro e equipes de suporte que verificam trechos de texto contra scripts antigos costumam precisar do mesmo par determinístico: o valor de checksum sem sinal e a coluna de blocos. Esta ferramenta de checksum BSD aceita texto não vazio, codifica-o como UTF-8, executa esse loop de rotacionar-e-somar e devolve o valor de dezesseis bits em decimal e quatro dígitos hexadecimais minúsculos junto com a contagem de blocos, o rótulo do algoritmo, o comprimento em bytes e um resumo breve.
O que o BSD sum clássico calcula e por que a contagem de blocos importa
O checksum BSD trata cada mensagem como uma sequência de bytes e mantém um acumulador de dezesseis bits que começa em zero. Para cada byte, o registrador é primeiro rotacionado um bit à direita dentro de dezesseis bits — o bit menos significativo vai para o bit alto — e em seguida o valor do byte é somado, com a soma mascarada de volta a dezesseis bits. Quando o fluxo termina, esse inteiro sem sinal é a coluna de checksum da saída clássica de sum.
Ao lado, a ferramenta informa quantos blocos de mil e vinte e quatro bytes a mensagem ocupa, usando divisão por teto do comprimento UTF-8: qualquer carga não vazia de um a mil e vinte e quatro bytes rende um bloco, o próximo kilobyte inicia um segundo bloco, e assim por diante.
Como BSD sum não é resistente a colisões nem é chaveado, trate-o como verificação rápida de integridade ou de enquadramento legado, 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 o checksum clássico de rotacionar-e-somar.
Onde uma soma BSD ainda é útil
Autores de sistemas legados e estudantes de história do Unix usam uma calculadora de checksum BSD para verificar passos de rotacionar-e-somar feitos à mão contra sum -r sem instalar um ambiente coreutils completo em cada linguagem. Plataformas de ensino e plugins LMS precisam de um oráculo determinístico que rejeite entrada vazia em vez de devolver zeros para a mensagem vazia, para que autoavaliadores distingam respostas ausentes de um checksum real.
Sites de conteúdo que ranqueiam por checksum BSD, checksum do comando sum ou sum clássico Unix 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 sum System V, CRC-16 ou hash criptográfico apenas quando a intenção de busca for além do rotacionar-e-somar BSD clássico — mantenha esta página focada em BSD sum para que a intenção SEO permaneça nítida e não canibalize landings de Adler-32 ou CRC-16.
Casos de uso
Verificação legada de sum -r
Reproduza o checksum BSD clássico e a contagem de blocos de 1024 bytes para uma carga de texto curta ao migrar scripts que ainda imprimem o par histórico de sum -r.
Perguntas frequentes
Qual algoritmo esta ferramenta corresponde?
O BSD sum clássico do histórico Unix sum e do GNU coreutils sum -r: para cada byte, rotacione o registrador de dezesseis bits um bit à direita e depois some o byte; a contagem de blocos é ceil(length/1024).
O que acontece se o texto estiver vazio?
Uma string não vazia é obrigatória; entrada vazia não é tratada como checksum bem-sucedido de zero com zero blocos.
A calculadora de checksum BSD é gratuita?
A ferramenta do navegador roda grátis no seu dispositivo.
BSD sum é o mesmo que System V sum ou CRC-16?
Não. System V sum (-s) usa outra acumulação e blocos de 512 bytes. CRC-16 usa um registrador polinomial. Esta ferramenta implementa apenas o rotacionar-e-somar BSD clássico.
O que significa a contagem de blocos no resultado?
É quantos blocos de 1024 bytes o texto ocupa depois de codificado em UTF-8, arredondando para cima. De 1 a 1024 bytes conta como um bloco, e o kilobyte seguinte já abre um segundo bloco.
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/bsd-sum \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"abc"}'const res = await fetch("https://api.kit.forhosting.com/enc/bsd-sum", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "abc"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/bsd-sum",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "abc"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/bsd-sum", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"abc"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"abc"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/bsd-sum", 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": "abc"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.bsd_sum",
"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 nunca confunda um campo ausente com o relatório zero-zero do arquivo vazio do comando clássico.
Contrato de entrada, erros de string vazia e formato JSON da resposta
A string é codificada como UTF-8 antes do loop BSD, de modo que caracteres multi-byte contribuem com cada unidade de código exatamente como um sum orientado a arquivo faria com o mesmo fluxo UTF-8. A entrada vazia é rejeitada de propósito em vez de devolver o par teórico do arquivo vazio zero zero, para que a UX do produto e os autoavaliadores distingan respostas ausentes de um checksum real. Fixe tanto um caminho de sucesso quanto o erro de entrada vazia na integração contínua para que mudanças acidentais de direção de rotação ou de tamanho de bloco 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 único campo de string obrigatório chamado text: qualquer sequência não vazia de caracteres que você deseje verificar. Os aliases input, value, s, data, message e payload são aceitos para o mesmo campo, para que stubs de SDK e envios de formulário permaneçam flexíveis. Se faltar text, o valor não for string ou a string estiver vazia, a solicitação falha com invalid_input e uma mensagem clara de que uma string não vazia é obrigatória; essas falhas não são cobradas na API pré-paga. Em caso de sucesso o corpo inclui result e hex com o mesmo checksum hexadecimal de quatro dígitos minúsculos; checksum e decimal com o inteiro sem sinal de dezesseis bits; blocks com a contagem de blocos de mil e vinte e quatro bytes; algorithm fixo em BSD sum; input_bytes igual ao comprimento UTF-8; text ecoando a entrada; e message resumindo a contagem de bytes, o valor decimal, o hex e os blocos.
Onde uma API de checksum BSD se justifica e como funciona o preço
Use a ferramenta gratuita no navegador para checagens pontuais; use a API KIT pré-paga 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 cargas em tamanhos de texto ordinários adequados a uma chamada de item em um Worker isolate; esta ferramenta é para strings curtas e trechos de protocolo, não para blobs binários de vários megabytes.
Casos de integração
Demonstrações de rotacionar-e-somar em aula
Professores mostram como uma rotação à direita de dezesseis bits mais uma soma produz os fixtures conhecidos abc e Hello sem instalar coreutils em cada máquina de aluno.
Fixtures de CI para helpers de integridade legada
Pipelines fixam saídas determinísticas de BSD sum em decimal, hex e blocks mais o erro de entrada vazia para que mudanças acidentais de rotação ou tamanho de bloco falhem rápido.
Perguntas técnicas
Como calcular um checksum BSD de um texto?
Envie JSON com um campo de string não vazio chamado text. A API codifica a string em UTF-8, executa o loop clássico BSD sum de rotacionar-e-somar e devolve o valor de dezesseis bits em decimal e quatro dígitos hex minúsculos mais a contagem de blocos de 1024 bytes.