ForHosting KIT · Ferramentas para dev

Caractere verificador Luhn mod N

Com o alfabeto abcdef, a sequência abcdef recebe o caractere verificador e, e o código protegido fica abcdefe. O Luhn mod N aplica a regra clássica de dobrar e somar na base N, para códigos com letras, hexadecimal ou um conjunto próprio de caracteres. 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
abcdef
Alfabeto
abcdef
Você obtém
Modo de cálculo
Compute
Carga útil
abcdef
Caractere de verificação
e
Com dígito verificador
abcdefe

O Luhn clássico só funciona com dígitos 0–9. Identificadores reais costumam misturar letras, hex, Base36 ou um alfabeto próprio e ainda precisam de um caractere de verificação final que detecte erros de digitação. Luhn mod N mapeia cada símbolo do seu alfabeto a um code point, aplica a mesma ideia de dobrar e somar da direita para a esquerda na base N e devolve um caractere de verificação desse mesmo alfabeto.

O que é Luhn mod N e como estende o Luhn clássico

O algoritmo original de Hans Peter Luhn protege cadeias de dígitos alternando um fator de dobra a partir da direita, reempacotando valores dobrados em um único dígito, somando e escolhendo um dígito de verificação para que o número completo seja congruente a zero módulo dez. Essa regra sustenta cartões de pagamento, caudas de IMEI e muitos identificadores nacionais, mas assume que N vale dez e que cada caractere é um dígito decimal.

Luhn mod N mantém a mesma estrutura e permite que N seja o tamanho de qualquer alfabeto ordenado que você defina: cada caractere mapeia para um code point de zero a N menos um, o reempacotamento vira a soma dos dígitos na base N do fator vezes o code point, e o resultado é mapeado de volta a um caractere desse alfabeto. Prefira um N par quando as garantias clássicas de detecção importam; alfabetos ímpares ainda produzem um caractere determinístico, mas enfraquecem a cobertura de substituições e transposições simples.

Em comparação com Damm (apenas dígitos, tabela de quasigrupo) e dígitos de código de barras ligados a layouts EAN ou ISBN, Luhn mod N é o encaixe certo quando seus códigos já são alfanuméricos e você quer um esquema compartilhado de emissão e validação.

Auditar colunas de identificadores exportados

Valide em lote cada código de um CSV de parceiro ou exportação de armazém e isole linhas cujo caractere de verificação não corresponde mais ao valor recalculado para o seu alfabeto.

O que é um caractere de verificação Luhn mod N?

É um único caractere final calculado com o algoritmo Luhn generalizado sobre um alfabeto de tamanho N, de modo que erros comuns de digitação façam a string completa falhar na validação.

O que acontece se text contiver símbolos que não estão em alphabet?

Tarefas de validação com falha não são cobradas.

A ferramenta Luhn mod N é gratuita?

A ferramenta do navegador é gratuita e roda localmente.

Como os caracteres viram números?

Pela posição no alfabeto que você informa: o primeiro caractere vale 0, o seguinte 1 e assim por diante até N menos 1, onde N é o tamanho do alfabeto. Com abcdef, o a vale 0, o f vale 5 e N é 6.

Por que o alfabeto deve ter um número par de caracteres?

Porque um N par mantém a capacidade de detecção do Luhn clássico. Um alfabeto ímpar ainda gera um caractere verificador fixo e repetível, mas pega menos caracteres trocados e menos vizinhos invertidos.

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/luhn-mod-n

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/luhn-mod-n \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"abcdef","alphabet":"abcdef"}'
{
  "text": "abcdef",
  "alphabet": "abcdef"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.luhn_mod_n",
  "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 capacidade calcula esse caractere para um payload, ou valida uma string completa que já termina com um, e falha de imediato quando a entrada contém símbolos fora do alfabeto para que você não aceite lixo em silêncio. Execute grátis no navegador ou chame a API do KIT pelo preço publicado; ambos os caminhos usam a mesma aritmética pura, sem rede e sem valores armazenados.

O que é Luhn mod N e como estende o Luhn clássico

A formulação da Wikipedia inicia a geração com fator dois no caractere mais à direita do payload e a validação com fator um no caractere de verificação final, que é exatamente o que esta ferramenta implementa para que os goldens batam com a referência pública. A resposta sempre nomeia o algoritmo luhn_mod_n para que logs e contratos de parceiros registrem qual esquema protegeu o valor.

Como calcular um caractere de verificação ou validar uma string completa

Texto vazio, alfabeto ausente, alfabetos com menos de dois caracteres distintos e valores de mode desconhecidos falham antes de qualquer aritmética e não são cobrados. Envie text como o payload sem caractere de verificação no modo compute (o padrão), e alphabet como o conjunto ordenado de símbolos válidos. O motor mapeia cada caractere distinto do alfabeto a code points sucessivos, percorre o payload da direita para a esquerda e devolve check_character mais with_check (payload mais esse caractere). O modo validate espera uma string completa com pelo menos dois caracteres; a resposta informa valid, o check_character final, expected_check_character recalculado a partir do prefixo e a substring payload sem o último caractere para que as interfaces mostrem uma correção clara. Todo símbolo em text deve aparecer em alphabet: se algum estiver fora, a chamada falha com invalid_input e a mensagem lista esses símbolos para você corrigir o alfabeto ou remover o ruído antes de tentar de novo. Como o caminho é parse puro, sem relógio, aleatoriedade ou rede, a mesma entrada sempre gera o mesmo JSON na ferramenta gratuita do navegador e na API. A US$ 0,002 por solicitação bem-sucedida você protege importações em lote, impressoras de etiquetas e formulários de onboarding sem um plano sob medida. Use os dígitos 0123456789 para reproduzir geração estilo Luhn mod-10 em payloads só numéricos; use 0-9A-Z para códigos de produto estilo Base36; use um conjunto interno quando o inventário já proíbe glifos ambíguos como O e 0.

Onde caracteres de verificação Luhn generalizados cabem em sistemas reais

Etiquetas de armazém e ativos costumam misturar letras e dígitos para leitura em voz alta; acrescentar um caractere Luhn mod N captura trocas adjacentes e substituições simples antes que um scan manual crie o envio errado. Chaves de licença e cupons que já excluem caracteres confusos ainda precisam de um dígito de integridade barato que parceiros reimplementem sem segredo compartilhado; publicar o alfabeto e este algoritmo basta. Não trate um check aprovado como prova de autorização ou propriedade — só prova que a string está bem formada sob Luhn mod N para esse alfabeto, o mesmo critério de honestidade de qualquer checksum. Programas de associação e fidelidade que ultrapassaram IDs só numéricos podem manter um único caminho de emissão: gerar um payload sequencial ou aleatório no alfabeto da casa, chamar compute, armazenar with_check e validar em cada formulário e arquivo de parceiro. Jobs de qualidade de dados recalculam expected_check_character para cada linha de uma exportação e isolam divergências, o que captura edições humanas e bugs de geradores. Testes de integração congelam goldens contra exemplos no estilo Wikipedia, como payload abcdef sobre alfabeto abcdef com caractere e, para que upgrades não alterem o esquema em silêncio.

Emitir códigos alfanuméricos de produto ou ativo

Gere um payload no seu alfabeto interno, chame o modo compute e armazene ou imprima with_check para que cada código novo leve um caractere final Luhn mod N.

Validar códigos digitados ou escaneados na entrada

Quando um usuário ou scanner envia uma string completa, chame o modo validate e bloqueie a consulta se valid for false, mostrando expected_check_character para corrigir um único erro de digitação.

Como calculo um caractere de verificação com esta API?

Faça POST com text igual ao payload, alphabet igual ao conjunto ordenado de caracteres e mode compute (ou omita mode). A resposta inclui check_character e with_check.

Como valido uma string que já tem caractere de verificação?

Faça POST com a string completa, o mesmo alphabet e mode validate. A resposta inclui valid, check_character, expected_check_character e payload sem o último caractere.

Ver a documentação completa do KIT →