Dashboard / CPF
CPF
Gerador e Validador de CPF
Como funciona?
O algoritmo do CPF é baseado no cálculo de dois dígitos verificadores.
Primeiro Dígito: Multiplicamos os 9 primeiros dígitos por uma sequência decrescente de 10 a 2. Somamos os resultados e dividimos por 11. Se o resto for menor que 2, o dígito é 0; caso contrário, subtraímos o resto de 11.
Segundo Dígito: Repetimos o processo incluindo o primeiro dígito já calculado, mas agora multiplicando pela sequência de 11 a 2. A lógica do resto permanece a mesma.
Se os dígitos calculados coincidirem com os dígitos informados, o CPF é considerado matematicamente válido. Vale lembrar que a validação matemática não garante que o CPF exista na base da Receita Federal, apenas que ele segue a estrutura oficial.
Implementação
def validar_cpf(cpf: str) -> bool:
# Remove caracteres não numéricos
cpf = ''.join(filter(str.isdigit, cpf))
# Verifica se tem 11 dígitos ou se todos os dígitos são iguais
if len(cpf) != 11 or cpf == cpf[0] * 11:
return False
# Cálculo do primeiro dígito verificador
for i in range(9, 11):
soma = sum(int(cpf[num]) * ((i + 1) - num) for num in range(i))
digito = (soma * 10) % 11
if digito == 10:
digito = 0
if digito != int(cpf[i]):
return False
return True