Gerador de CNH

Gere números de CNH válidos matematicamente para fins de teste e desenvolvimento. Algoritmo DENATRAN com dígitos verificadores corretos.

Gerador de CNH para Testes

Gere números de CNH com dígitos verificadores matematicamente corretos para uso em desenvolvimento e testes de software.

Apenas para fins de teste e desenvolvimento — não são documentos reais e não devem ser usados para falsidade ideológica.

Estrutura da CNH

O Registro Nacional de Habilitação (RENACH) da CNH é composto por 11 dígitos numéricos:

NNNNNNNNN D1 D2
└── 9 dígitos base ──┘ └─ verificadores

Não há formatação com pontos ou traços — a CNH é exibida como sequência numérica pura de 11 dígitos.

Algoritmo dos dígitos verificadores (DENATRAN)

Dígito 1 (D1)

D1 = (d[0]×9 + d[1]×8 + d[2]×7 + d[3]×6 + d[4]×5 +
      d[5]×4 + d[6]×3 + d[7]×2 + d[8]×1) mod 11
Se D1 ≥ 10 → D1 = 0

Dígito 2 (D2)

D2 = (d[0]×1 + d[1]×2 + d[2]×3 + d[3]×4 + d[4]×5 +
      d[5]×6 + d[6]×7 + d[7]×8 + d[8]×9 + D1×2) mod 11
Se D2 ≥ 10 → D2 = 0

Para que serve gerar CNH fictícia?

No desenvolvimento de software que processa dados de motoristas, é necessário ter dados de teste que:

  • Passem na validação de formato dos formulários e sistemas
  • Não correspondam a pessoas reais (requisito da LGPD)
  • Cubram casos extremos (dígitos verificadores = 0, sequências repetidas)
  • Sirvam como fixtures em testes automatizados (unitários, integração, E2E)

Exemplos de aplicações: sistemas de locadoras, seguradoras, despachantes, órgãos de trânsito, fintechs que precisam validar CNH como documento de identidade.

LGPD e uso responsável

A Lei Geral de Proteção de Dados (LGPD) exige que dados pessoais reais não sejam usados em ambientes de desenvolvimento e teste sem consentimento e medidas de segurança adequadas. Usar dados fictícios matematicamente válidos é a solução correta para conformidade.

Nunca use estes números gerados para:

  • Falsificação de documentos
  • Preenchimento de formulários oficiais
  • Simulação de identidade

Perguntas frequentes

O estado emissor influencia no número?

Não no cálculo dos dígitos verificadores. O RENACH (número da CNH) é calculado apenas com os 9 dígitos base, independentemente do estado. O estado é informado como dado complementar no documento físico.

Como validar uma CNH em código?

function validarCnh(cnh) {
  const d = cnh.split('').map(Number);
  if (d.length !== 11) return false;
  
  let sum1 = 0;
  for (let i = 0; i < 9; i++) sum1 += d[i] * (9 - i);
  const d1 = sum1 % 11 >= 10 ? 0 : sum1 % 11;
  
  let sum2 = 0;
  for (let i = 0; i < 9; i++) sum2 += d[i] * (1 + i);
  sum2 += d1 * 2;
  const d2 = sum2 % 11 >= 10 ? 0 : sum2 % 11;
  
  return d[9] === d1 && d[10] === d2;
}

CNH gerada pode coincidir com uma CNH real?

Matematicamente sim — qualquer número de 11 dígitos que passe no algoritmo DENATRAN poderia ser uma CNH real. Por isso, estes números não devem sair do ambiente de desenvolvimento.

Veja também