🪪 Documentos BR · 2026

CNH — Validar e Gerar 2026

Valide números de CNH ou gere válidos para testes. Verificação completa dos dois dígitos verificadores.

📋 Novo · Guia Completo
Quer tirar ou renovar sua CNH? Veja as novas regras de 2026
Resolução CONTRAN 1.020/2025 · Passo a passo · Custos · Categorias
Configuração
🚗

Informe uma CNH ou gere novas

Como funciona a CNH

A CNH tem 11 dígitos. Os dois últimos são dígitos verificadores calculados pelo módulo 11 com pesos variáveis.

O primeiro verificador usa pesos 1 a 9 (ascendente) sobre os 9 primeiros dígitos. O segundo verificador usa pesos 9 a 1 (descendente), com ajuste (DSC) quando o primeiro verificador é zero.

⚠️ CNHs geradas são fictícias, válidas matematicamente mas não vinculadas a nenhuma pessoa real. Use apenas para testes.

🪪 O que é a CNH e como é estruturada?

A CNH (Carteira Nacional de Habilitação) é o documento oficial que habilita o cidadão brasileiro a conduzir veículos automotores no território nacional. Emitida pelo DETRAN de cada estado e regulamentada pelo DENATRAN (hoje SENATRAN), é controlada pelo RENACH (Registro Nacional de Carteiras de Habilitação), sistema federal que unifica os dados de todos os condutores do país.

Para fins de sistemas e validação, o que importa é o Registro de CNH: um número de 11 dígitos onde os 9 primeiros formam o número base e os 2 últimos são dígitos verificadores calculados por um algoritmo módulo 11 com pesos variáveis — similar ao CPF, mas com lógica diferente.

PosiçãoDescriçãoExemplo
1–9Número base da CNH123456789
101° dígito verificador (DV1)0
112° dígito verificador (DV2)9
1–11Registro completo da CNH12345678909

🕰️ Breve História da CNH no Brasil

1941
Decreto-Lei 2.994 — primeiro código de trânsito
O Brasil cria seu primeiro Código Nacional de Trânsito, regulamentando a habilitação de condutores. A carteira de habilitação era um documento físico estadual, sem padronização nacional — cada DETRAN emitia em formato próprio.
1966
Lei 5.108 — Código Nacional de Trânsito unificado
Primeiro esforço real de padronização nacional. Define as categorias de habilitação (A, B, C, D, E) e começa o processo de unificação dos registros entre estados. A carteira ainda era impressa em papel com dados preenchidos à mão ou datilografados.
1997
CTB — Código de Trânsito Brasileiro moderno
A Lei 9.503/1997 cria o atual Código de Trânsito Brasileiro, ainda em vigor. Estabelece o sistema de pontuação, as categorias atuais de CNH e cria o DENATRAN como órgão federal coordenador. A CNH ganha formato plástico padronizado nacionalmente pela primeira vez.
2000s
RENACH — Registro Nacional informatizado
O RENACH (Registro Nacional de Carteiras de Habilitação) é implantado como banco de dados federal integrado aos DETRANs estaduais. O número de registro da CNH se torna o identificador único do condutor no sistema, com os 11 dígitos e os dois verificadores matemáticos.
2016
CNH Digital — documento eletrônico oficial
O DENATRAN lança a CNH Digital, versão eletrônica com QR Code e certificado digital, aceita como documento oficial no Brasil. O número de registro de 11 dígitos permanece o mesmo — a mudança é apenas no suporte físico/digital do documento.
2021
SENATRAN substitui DENATRAN
O DENATRAN é extinto e substituído pela Secretaria Nacional de Trânsito (SENATRAN), subordinada ao Ministério da Infraestrutura. As regras da CNH e do número de registro permanecem inalteradas — apenas a estrutura administrativa muda.
2025–2026 ✦ Novo
Resolução CONTRAN 1.020/2025 — maior reforma em décadas
Publicada em dezembro de 2025, a Resolução CONTRAN nº 1.020 e a MP nº 1.327/2025 revolucionam o processo de habilitação: curso teórico gratuito via aplicativo, carga prática mínima reduzida de 20h para apenas 2h, instrutores autônomos credenciados, inscrição 100% digital e renovação automática para bons condutores. O número de registro de 11 dígitos e o algoritmo de validação não foram alterados.

🆕 Novas Regras para Tirar a CNH em 2025–2026

📋

Base legal: Resolução CONTRAN nº 1.020, de 1º de dezembro de 2025, e Medida Provisória nº 1.327/2025. Representa a maior reforma no processo de habilitação desde o CTB de 1997. O número de registro de 11 dígitos e o algoritmo de validação não foram alterados.

Com cerca de 20 milhões de brasileiros dirigindo sem habilitação — principalmente por causa do alto custo e da burocracia —, o governo federal reformulou completamente o processo de obtenção da CNH. As mudanças valem em todo o país a partir de 2026, com implementação gradual por cada DETRAN estadual.

O que mudouAntes (até 2024)Agora (2025–2026)
Aulas teóricas Presencial em autoescola (pagas) Gratuitas via app CNH do Brasil (EaD) ou presencial em autoescola
Carga prática mínima (cat. A e B) 20 horas-aula obrigatórias Apenas 2 horas mínimas
Onde fazer as aulas práticas Obrigatoriamente em autoescola Autoescola, instrutor autônomo credenciado ou escola pública de trânsito
Inscrição Presencial no DETRAN / autoescola 100% digital pelo app ou portal do Ministério dos Transportes
Prazo para concluir a habilitação Máximo de 1 ano após início do processo Sem prazo máximo
Exame prático Sistema de faltas graves com eliminação imediata; baliza obrigatória Sistema de pontos (reprovação ao atingir 10 pts); baliza não reprova automaticamente
Renovação Sempre presencial + exame médico Automática e gratuita (digital) para condutores sem infrações nos últimos 12 meses (RNPC)
Custo estimado (1ª habilitação) R$ 2.000–3.000+ (pacotes autoescola) A partir de ~R$ 530 (taxas + 2h prática)

📱 Novo Passo a Passo para Tirar a CNH (2026)

1️⃣

Inscrição digital: Acesse o app CNH do Brasil ou o portal do Ministério dos Transportes, preencha o formulário e abra o registro no RENACH. Em alguns estados o DETRAN ainda pode exigir presença para coleta biométrica.

2️⃣

Exames médico e psicológico: Continuam obrigatórios e devem ser realizados com profissionais credenciados pelo DETRAN. São pré-requisito para prosseguir.

3️⃣

Curso teórico: Gratuito e online pelo app oficial (EaD assíncrono), ou pago em autoescola. Após concluir, o certificado é enviado automaticamente ao DETRAN pelo app.

4️⃣

Prova teórica: Realizada no DETRAN (presencial). São 30 questões; é necessário acertar pelo menos 21 (70%). Aprovado, o candidato já pode agendar as aulas práticas.

5️⃣

Aulas práticas: Mínimo de 2 horas com instrutor credenciado — de autoescola, autônomo ou escola pública de trânsito. O veículo pode ser do candidato, desde que atenda aos requisitos do DETRAN. Mais horas são recomendadas para quem nunca dirigiu.

6️⃣

Exame prático (direção veicular): Realizado em trajeto no trânsito real, avaliado por sistema de pontos (0–10). A reprovação ocorre ao atingir 10 pontos negativos. A baliza não reprova automaticamente, mas faz parte do exame. Em alguns estados (ex.: SP), o candidato pode refazer no mesmo dia se houver vaga.

Expedição da CNH: Aprovado no exame prático, a CNH digital é emitida e aparece no app. A versão física continua disponível mediante solicitação paga no DETRAN do estado.

⚠️

Atenção: regras variam por estado. Cada DETRAN tem autonomia para definir prazos de implementação, requisitos extras e detalhes do exame. Consulte sempre o DETRAN do seu estado antes de iniciar o processo. Desconfie de promessas de "CNH 100% gratuita" ou links suspeitos — aplique-se apenas pelos canais oficiais (gov.br e app CNH do Brasil).

⚙️ Algoritmo de Validação da CNH — Passo a Passo

O algoritmo usa módulo 11 com dois cálculos distintos de pesos — um ascendente (1→9) para o primeiro verificador e um descendente (9→1) para o segundo, com um DSC (desconto) especial quando o primeiro dígito verificador é zero.

Exemplo completo: CNH 12345678909
1
9 dígitos base
1 2 3 4 5 6 7 8 9
2
Pesos DV1 (1→9)
×1 ×2 ×3 ×4 ×5 ×6 ×7 ×8 ×9
3
Produtos DV1
1 + 4 + 9 + 16 + 25 + 36 + 49 + 64 + 81 = 285
4
DV1 = 285 % 11
285 mod 11 = 10 → DV1 = 0   (≥10 → DV1 = 0, DSC = 2)
5
Pesos DV2 (9→1)
×9 ×8 ×7 ×6 ×5 ×4 ×3 ×2 ×1
6
Soma DV2 + DSC
9+16+21+24+25+24+21+16+9 = 165 + DSC(2) = 167
7
DV2 = 167 % 11
167 mod 11 = 2 → DV2 = 9   (11 - 2 = 9)
8
CNH válida
12345678909 ✓
⚠️

Regra especial do DSC: Quando o resultado da soma para DV1 mod 11 for ≥ 10, o DV1 é definido como 0 e o DSC (desconto) é ajustado para 2. Esse DSC é somado à soma do DV2 antes de calcular o módulo. Se o resultado do DV2 mod 11 também for ≥ 10, o DV2 é definido como 0.

💻 Validação de CNH em Diferentes Linguagens

JavaScript
function validarCNH(cnh) {
  // Remove não-dígitos e valida comprimento
  cnh = cnh.replace(/\D/g, '');
  if (cnh.length !== 11) return false;
  // Rejeita sequências repetidas (ex.: 00000000000)
  if (/^(\d)\1+$/.test(cnh)) return false;

  const digits = cnh.split('').map(Number);
  let soma = 0, dsc = 0;

  // Calcula DV1 com pesos 1 a 9
  for (let i = 0; i < 9; i++) soma += digits[i] * (i + 1);
  let dv1 = soma % 11;
  if (dv1 >= 10) { dv1 = 0; dsc = 2; }

  // Calcula DV2 com pesos 9 a 1
  soma = 0;
  for (let i = 0; i < 9; i++) soma += digits[i] * (9 - i);
  soma += dsc;
  let dv2 = soma % 11;
  if (dv2 >= 10) dv2 = 0;

  return digits[9] === dv1 && digits[10] === dv2;
}

console.log(validarCNH('12345678909')); // true
console.log(validarCNH('12345678900')); // false
Python
import re

def validar_cnh(cnh: str) -> bool:
    cnh = re.sub(r'\D', '', cnh)
    if len(cnh) != 11: return False
    if len(set(cnh)) == 1: return False  # todos iguais

    digits = [int(d) for d in cnh]
    dsc = 0

    # DV1 — pesos 1 a 9
    soma = sum(digits[i] * (i + 1) for i in range(9))
    dv1 = soma % 11
    if dv1 >= 10:
        dv1, dsc = 0, 2

    # DV2 — pesos 9 a 1
    soma = sum(digits[i] * (9 - i) for i in range(9)) + dsc
    dv2 = soma % 11
    if dv2 >= 10:
        dv2 = 0

    return digits[9] == dv1 and digits[10] == dv2


print(validar_cnh('12345678909'))  # True
print(validar_cnh('00000000000'))  # False
PHP
function validarCNH(string $cnh): bool {
    $cnh = preg_replace('/\D/', '', $cnh);
    if (strlen($cnh) !== 11) return false;
    if (preg_match('/^(\d)\1+$/', $cnh)) return false;

    $digits = array_map('intval', str_split($cnh));
    $dsc = 0; $soma = 0;

    for ($i = 0; $i < 9; $i++) $soma += $digits[$i] * ($i + 1);
    $dv1 = $soma % 11;
    if ($dv1 >= 10) { $dv1 = 0; $dsc = 2; }

    $soma = 0;
    for ($i = 0; $i < 9; $i++) $soma += $digits[$i] * (9 - $i);
    $dv2 = ($soma + $dsc) % 11;
    if ($dv2 >= 10) $dv2 = 0;

    return $digits[9] === $dv1 && $digits[10] === $dv2;
}
Java
public static boolean validarCNH(String cnh) {
    cnh = cnh.replaceAll("\\D", "");
    if (cnh.length() != 11) return false;
    if (cnh.matches("(\\d)\\1{10}")) return false;

    int[] d = cnh.chars().map(c -> c - '0').toArray();
    int soma = 0, dsc = 0;

    for (int i = 0; i < 9; i++) soma += d[i] * (i + 1);
    int dv1 = soma % 11;
    if (dv1 >= 10) { dv1 = 0; dsc = 2; }

    soma = 0;
    for (int i = 0; i < 9; i++) soma += d[i] * (9 - i);
    int dv2 = (soma + dsc) % 11;
    if (dv2 >= 10) dv2 = 0;

    return d[9] == dv1 && d[10] == dv2;
}
C# / .NET
public static bool ValidarCNH(string cnh) {
    cnh = Regex.Replace(cnh, @"\D", "");
    if (cnh.Length != 11) return false;
    if (Regex.IsMatch(cnh, @"^(\d)\1+$")) return false;

    int[] d = cnh.Select(c => c - '0').ToArray();
    int soma = 0, dsc = 0;

    for (int i = 0; i < 9; i++) soma += d[i] * (i + 1);
    int dv1 = soma % 11;
    if (dv1 >= 10) { dv1 = 0; dsc = 2; }

    soma = 0;
    for (int i = 0; i < 9; i++) soma += d[i] * (9 - i);
    int dv2 = (soma + dsc) % 11;
    if (dv2 >= 10) dv2 = 0;

    return d[9] == dv1 && d[10] == dv2;
}

🔀 CNH vs CPF: Diferenças do Algoritmo Módulo 11

Característica CNH CPF
Total de dígitos 11 11
Dígitos verificadores 2 (posições 10 e 11) 2 (posições 10 e 11)
Pesos DV1 1, 2, 3, 4, 5, 6, 7, 8, 9 (crescente) 10, 9, 8, 7, 6, 5, 4, 3, 2 (decrescente)
Pesos DV2 9, 8, 7, 6, 5, 4, 3, 2, 1 (decrescente) 11, 10, 9, 8, 7, 6, 5, 4, 3, 2 (inclui DV1)
Regra ≥ 10 DV = 0 e aplica DSC = 2 no DV2 DV = 0 (simples)
DSC especial Sim — quando DV1 ≥ 10 Não
Dígito regional Não (no registro) Sim — posição 9 indica região

🛠️ Casos de Uso em Desenvolvimento e Testes

🧪

Testes de formulários: Sistemas de frota, locadoras, seguros e detrans precisam validar CNH em tempo real no frontend. Use o gerador para criar massas de dados de teste sem expor dados reais de condutores.

🔒

LGPD e dados pessoais: CNH é dado pessoal sensível conforme a LGPD. Em ambientes de desenvolvimento e homologação, nunca use CNHs reais — use sempre dados gerados fictícios que passem na validação matemática mas não correspondam a pessoas reais.

Validação frontend vs backend: Valide a CNH no frontend para UX (feedback imediato), mas sempre revalide no backend antes de persistir. Nunca confie apenas na validação client-side — ela pode ser bypassada facilmente.

⚠️

CNH válida matematicamente ≠ CNH existente: Um número que passa na validação dos dígitos verificadores pode não corresponder a nenhum condutor real no RENACH. A validação matemática confirma apenas que os dígitos foram calculados corretamente — não que a CNH está ativa ou cadastrada.

Perguntas Frequentes

A Resolução nº 1.020/2025 (dez/2025) representa a maior reforma na habilitação desde 1997. Os principais pontos: (1) curso teórico gratuito online via app CNH do Brasil; (2) carga prática mínima reduzida de 20h para apenas 2 horas nas categorias A e B; (3) possibilidade de aulas com instrutores autônomos credenciados, sem obrigatoriedade de autoescola; (4) inscrição 100% digital; (5) sem prazo máximo para concluir a habilitação; (6) exame prático reformulado por sistema de pontos; (7) renovação automática gratuita para bons condutores (RNPC). O número de registro de 11 dígitos e o algoritmo de validação não foram alterados. Veja mais detalhes na seção de Novas Regras 2026 acima.

Sim, para fins de desenvolvimento e testes. Gerar números que passam na validação matemática é legal para testar sistemas, preencher bancos de dados de homologação e desenvolver validadores. O que é ilegal é usar números reais de terceiros sem autorização, apresentar CNH falsa como documento oficial, ou usar dados gerados para fraude. Ferramentas de geração de documentos fictícios para desenvolvimento são amplamente utilizadas e aceitas na indústria de software.

Por convenção do algoritmo — e para evitar valores triviais — números como 00000000000, 11111111111 e outros com todos os dígitos iguais são considerados inválidos, mesmo que matematicamente possam passar nos cálculos de módulo. É o mesmo tratamento dado ao CPF. Na prática, é um filtro de sanidade básico que qualquer validador deve implementar.

Não. O número de registro da CNH é permanente e vinculado ao condutor no RENACH — não muda com renovações, mudanças de categoria, adição de ACC (autorização para conduzir ciclomotores) ou mudança de estado. O que muda a cada renovação é o número do documento físico (impresso no canto da carteira), não o número de registro de 11 dígitos usado para validação.

Antes de calcular os dígitos verificadores, aplique estas validações rápidas:

  • Somente dígitos: /^\d{11}$/
  • Não todos iguais: /^(?!(\d)\1+$)/
  • Comprimento exato: 11 caracteres após remover espaços e hífens

Essas verificações eliminam entradas obviamente inválidas antes do cálculo custoso — boa prática para validação em massa.

Sim, mas requer credenciais e autorização do SENATRAN/DETRAN. Opções disponíveis:

  • Portal de Serviços SENATRAN: consulta manual em detran.gov.br
  • APIs de bureaux de dados (Serpro, Neoway, SPC, Boa Vista): oferecem consulta programática com contrato, usada por locadoras, seguradoras e frotas
  • Gov.br: o sistema de login único do governo permite acesso à CNH digital do usuário com consentimento explícito

Nenhuma dessas opções é gratuita para consulta em massa — apenas a validação matemática (o que este validador faz) é livre.

📌 Resumo do Algoritmo para Referência Rápida

1️⃣

Extraia os 9 dígitos base (posições 1–9). Rejeite se comprimento ≠ 11 ou todos os dígitos forem iguais.

2️⃣

DV1: some cada dígito × peso crescente (1, 2, ..., 9). DV1 = soma % 11. Se ≥ 10 → DV1 = 0 e DSC = 2.

3️⃣

DV2: some cada dígito × peso decrescente (9, 8, ..., 1) + DSC. DV2 = soma % 11. Se ≥ 10 → DV2 = 0.

4️⃣

Validação: dígito[9] == DV1 E dígito[10] == DV2. Ambos devem bater — se qualquer um falhar, a CNH é inválida.

Complexidade: O(n) com n=11 — validação instantânea, sem necessidade de lookup externo. Ideal para validação em formulários com feedback em tempo real (onInput/onChange).