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