Validar CNH: reproduzindo um algoritmo não-oficial de forma consistente
Validar CNH tem uma particularidade que a diferencia de validar CPF ou CNPJ: como já explicado na página do gerador de CNH, o DETRAN e o CONTRAN nunca publicaram formalmente o algoritmo de dígito verificador — este validador, como qualquer outro disponível publicamente, reproduz a fórmula reconstruída por engenharia reversa e consolidada pela comunidade de desenvolvimento. Isso significa que a "fonte da verdade" aqui não é uma norma oficial citável, é a consistência entre implementações amplamente usadas — um detalhe que vale documentar explicitamente para quem constrói um sistema que depende dessa validação.
O ajuste condicional é o ponto mais fácil de implementar errado
Como detalhado na página do gerador, o segundo dígito verificador da CNH depende de uma variável de ajuste (0 ou 2) que só existe se o primeiro cálculo produzir resto exatamente 10. Um validador que recalcula os dois dígitos de forma independente, sem propagar esse ajuste condicional do primeiro cálculo para o segundo, vai rejeitar incorretamente uma fração dos números de CNH genuinamente válidos — especificamente aqueles cujo primeiro dígito calculado é 0 por causa desse caso especial. É o tipo de bug que só aparece em produção, com dados reais, porque testes com poucos exemplos aleatórios raramente cobrem esse caso de borda por acaso.
Uso em testes de sistemas de trânsito e locação
Para testar um validador de CNH com cobertura real desse caso de borda, é necessário gerar deliberadamente números que caiam no cenário de ajuste (resto 10 no primeiro cálculo) — algo que o gerador de CNH deste site produz naturalmente em uma fração das gerações aleatórias, mas que vale verificar explicitamente numa suíte de testes, em vez de confiar que vai aparecer por acaso numa amostra pequena.