Gerador de CNH: dois dígitos verificadores e um algoritmo não-oficial
É importante começar por uma ressalva que diferencia este gerador dos de CPF e CNPJ: o DETRAN e o CONTRAN nunca publicaram oficialmente o algoritmo de dígito verificador usado no número de registro da CNH (Carteira Nacional de Habilitação). O que existe — e é usado por este gerador, assim como por praticamente toda biblioteca de validação de CNH disponível publicamente — é uma fórmula reconstruída por engenharia reversa a partir de números reais, replicada de forma consistente pela comunidade de desenvolvedores há anos. Ela funciona (produz números que validadores de terceiros e formulários aceitam), mas não tem o mesmo status de "norma publicada" que o Módulo 11 do CPF tem junto à Receita Federal.
A matemática dos dois dígitos verificadores
O número de CNH tem 11 dígitos: 9 dígitos de base mais 2 dígitos verificadores, calculados de forma mais entrelaçada que no CPF — aqui o segundo dígito depende de um ajuste condicional aplicado no primeiro, não é uma simples repetição do mesmo processo.
Primeiro dígito — os 9 dígitos de base são
multiplicados por pesos decrescentes de 9 a 1. Os produtos são somados e
o resultado é dividido por 11. Se o resto for menor que 10, ele
é o primeiro dígito verificador diretamente (sem a conversão
11 - resto usada no CPF). Se o resto for 10, o primeiro
dígito verificador é forçado para 0 — mas esse caso ativa uma variável
de ajuste (valor 2) que entra no cálculo do segundo dígito.
Segundo dígito — os mesmos 9 dígitos de base são multiplicados por pesos crescentes de 1 a 9 (o inverso da primeira passada). A soma é dividida por 11, e do resto se subtrai o ajuste (2, se o primeiro cálculo caiu no caso especial de resto 10; 0, caso contrário). Se o resultado for negativo, soma-se 11; se o resultado for maior ou igual a 10, o dígito final é forçado para 0.
Essa dependência entre as duas passadas — pesos em ordem inversa entre elas, e um ajuste que só existe por causa de um caso extremo do primeiro cálculo — é o que torna o algoritmo da CNH genuinamente mais elaborado que o do CPF, apesar de operar sobre a mesma base conceitual de Módulo 11.
Uso em testes de sistemas de trânsito e locação de veículos
Sistemas de locadoras de veículos, aplicativos de mobilidade que verificam habilitação de motoristas, e integrações com o RENACH (Registro Nacional de Carteiras de Habilitação) validam o formato do número de CNH antes de qualquer consulta a uma base oficial — a mesma separação de camadas já discutida para CPF e cartão de crédito. Testes automatizados desses fluxos (cadastro de motorista parceiro, validação de formulário de locação) se beneficiam de um número que passa na validação de formato sem exigir acesso a uma base real do DETRAN, que não está disponível — nem deveria estar — em ambiente de desenvolvimento ou CI.