ForHosting KIT · Ferramentas para dev

Calculadora de checksum XOR

A calculadora de checksum XOR combina uma lista ordenada de bytes em um único valor de integridade de 8 bits.

● BetaGrátis · no seu navegador
Use pelo WebAPIE-mailTelegramApp em breve

Informe inteiros de 0 a 255 e receba o resultado em decimal, hexadecimal e binário, além de uma expressão legível do cálculo. Esse checksum aparece em mensagens seriais compactas, comandos de sistemas embarcados, formatos legados e protocolos simples do tipo LRC porque exige pouco processamento. A ferramenta ajuda você a conferir exemplos, depurar quadros, preparar vetores de teste e reproduzir uma especificação sem criar um script descartável.

Como o checksum XOR é calculado

O cálculo começa com um acumulador igual a zero e aplica a operação ou exclusivo bit a bit a cada byte da sequência. Em cada posição, XOR gera um quando os bits comparados são diferentes e zero quando são iguais. A repetição deixa um único byte. Um valor combinado duas vezes se cancela, pois x XOR x é zero, enquanto XOR com zero mantém o valor. A operação é associativa e comutativa; portanto, agrupar ou reordenar os bytes selecionados não altera o resultado, embora o protocolo ainda determine quais campos entram na conta. Esta calculadora valida se cada item é um inteiro entre 0 e 255, percorre a lista e formata o mesmo resultado de três formas. O decimal é conveniente em API gerais, o hexadecimal acompanha dumps de pacotes e folhas técnicas, e a forma binária com oito dígitos expõe cada bit. A expressão retornada registra todos os operandos e o checksum hexadecimal final para facilitar a conferência.

Escolha os bytes corretos da mensagem

A conta é simples, mas selecionar o trecho correto de um quadro é a causa mais comum de divergência. Leia a definição do protocolo para descobrir se o delimitador inicial, endereço, comando, comprimento, carga útil, campo de checksum existente e delimitador final participam. Em geral, o próprio byte de checksum fica de fora, mas as convenções variam. Converta octetos hexadecimais como 7E, 01 e A4 em inteiros antes do envio: eles correspondem a 126, 1 e 164. Não informe códigos de caracteres, a menos que o protocolo verifique texto codificado. O caractere ASCII “7” normalmente vale 55, enquanto um campo numérico sete vale 7; são entradas distintas. Números com vários bytes também precisam respeitar a ordem de transmissão, com o byte mais ou menos significativo primeiro conforme a endianidade. Monte a lista exatamente como ela trafega e compare o hexadecimal retornado com o quadro ou manual. A contagem ajuda você a identificar um campo ausente ou repetido.

O que essa verificação pode comprovar

Um checksum XOR é útil quando o protocolo precisa de uma verificação muito rápida e já especifica esse algoritmo. Ele detecta qualquer alteração de um único bit e várias outras mudanças acidentais, sendo prático para diagnosticar quadros seriais curtos e dispositivos limitados. Porém, é muito mais fraco que um CRC ou hash criptográfico. Dois erros iguais em bytes diferentes podem se cancelar, a troca da ordem não muda o resultado e um invasor pode alterar dados e compensar a mudança em outra posição. Use a saída como valor de compatibilidade e diagnóstico, não como prova de autenticidade ou proteção contra adulteração. Ao projetar um protocolo novo, considere um CRC bem definido para erros de transmissão ou um código de autenticação de mensagem quando houver requisitos de segurança. Para testes repetíveis, salve no fixture a lista exata e a expressão retornada. O navegador executa a mesma lógica determinística da API, enquanto chamadas automatizadas custam US$ 0,002 cada, garantindo resultados iguais em verificações manuais e pipelines.

Depurar um quadro serial

Recalcule o checksum dos campos definidos e compare-o com o byte recebido do dispositivo.

Criar vetores de teste

Gere resultados estáveis em decimal, hexadecimal e binário para testes de firmware, drivers e integração.

Verificar comandos embarcados

Confira um pacote antes do envio e valide se conversões e campos seguem o manual do dispositivo.

Quais valores posso informar?

Informe um array não vazio de inteiros de 0 a 255. Cada inteiro representa exatamente um byte.

A ordem afeta o checksum XOR?

Não. XOR é comutativo, mas você deve preservar a ordem de transmissão ao documentar e depurar o quadro.

Devo incluir o próprio byte de checksum?

Siga a especificação. A maioria o exclui, mas algumas verificações processam o quadro completo e esperam um resíduo definido.

É a mesma coisa que CRC?

Não. O CRC usa divisão polinomial e detecta mais classes de erros. XOR é mais leve, porém bem mais fraco.

Posso usar strings hexadecimais?

O contrato aceita bytes inteiros. Converta cada octeto hexadecimal no inteiro equivalente antes da chamada.

Quanto custa um cálculo por API?

Cada solicitação por API custa US$ 0,002. A calculadora no navegador está disponível para conferências interativas.

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/elec/xor-checksum

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/elec/xor-checksum \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"bytes":[72,101,108,108,111]}'
{
  "bytes": [
    72,
    101,
    108,
    108,
    111
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "elec.xor_checksum",
  "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.

max_items65536
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.

Ver a documentação completa do KIT →