Validador de Cartão de Cidadão (Portugal)
Valide números de Cartão de Cidadão de Portugal (12 caracteres) em tempo real.
Validação do Cartão de Cidadão
A validação converte as letras em valores numéricos (A=10 ... Z=35) e aplica o algoritmo de Luhn de módulo 10 em toda a sequência de 12 caracteres.
Garante a integridade do cadastro para aplicações e serviços públicos em Portugal.
Anatomia & Estrutura do Cartão de Cidadão
O número de documento do Cartão de Cidadão é formado por 12 caracteres divididos em 4 blocos:
| Posição | Campo | Tamanho | Significado & Regra | Exemplo |
|---|---|---|---|---|
| 1 a 8 | NIC | 8 dígitos | Número de Identificação Civil (antigo BI), preenchido com zeros à esquerda se necessário | 12345678 |
| 9 | Check Digit NIC | 1 dígito | Dígito de controlo aritmético do BI | 9 |
| 10 e 11 | Versão / Emissão | 2 caracteres | Código alfanumérico da versão física do documento (ex: ZZ, ZX, 00) | ZZ |
| 12 | Check Digit Geral | 1 char | Dígito de controlo global calculado pelo algoritmo de Luhn em base 36 | 4 |
Algoritmo de Validação do Cartão de Cidadão (Luhn em Base 36)
O algoritmo oficial adotado pelo IRN e AMA opera sobre os 12 caracteres da direita para a esquerda:
sum(dobro_ou_direto(Base36(char_i))) % 10 == 0
- 1. Mapeie cada caractere para seu valor numérico em base 36: dígitos 0-9 valem seu próprio número; letras A-Z valem 10 a 35 (código ASCII - 55).
- 2. Da direita para a esquerda (i=0 a 11), dobre o valor nas posições ímpares (1, 3, 5, 7, 9, 11).
- 3. Se o dobro for maior que 9, subtraia 9 do resultado (equivalente à soma dos algarismos).
- 4. Mantenha os valores diretos nas posições pares (0, 2, 4, 6, 8, 10).
- 5. Some todas as parcelas: o documento é válido se a soma total for estritamente múltipla de 10 (soma % 10 == 0).