Gerador de CNH para Testes
Gere números de CNH com dígitos verificadores matematicamente corretos para uso em desenvolvimento e testes de software.
Estrutura da CNH
O número de registro da CNH (o “Nº Registro” impresso no documento e cadastrado no RENACH, o Registro Nacional de Carteiras de Habilitação) é composto por 11 dígitos numéricos:
NNNNNNNNN D1 D2
└── 9 dígitos base ──┘ └─ verificadoresNã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 = 0Dí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) mod 11
Se o cálculo do D1 deu resto ≥ 10, subtrai-se 2 do D2 (somando 11 se ficar negativo)
Se D2 ≥ 10 → D2 = 0Como esse ajuste do D2 aparece com pequenas variações em diferentes implementações, este gerador só produz números em que o resto do D1 é menor que 10 — assim eles passam em qualquer uma delas.
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. Os dígitos verificadores do número de registro são calculados 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);
let d1 = sum1 % 11;
let dsc = 0;
if (d1 >= 10) { d1 = 0; dsc = 2; }
let sum2 = 0;
for (let i = 0; i < 9; i++) sum2 += d[i] * (1 + i);
let d2 = sum2 % 11 - dsc;
if (d2 < 0) d2 += 11;
if (d2 >= 10) d2 = 0;
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.