Validar um CPF sem recorrer à Receita Federal é possível e eficiente utilizando o algoritmo de verificação dos dígitos verificadores. Este método é rápido, totalmente offline e garante a validade matemática do número informado, evitando erros comuns de digitação.
O CPF é composto por 11 dígitos, onde os dois últimos são verificadores. A validação é feita multiplicando os 9 primeiros dígitos por pesos decrescentes, somando os resultados, e calculando o resto da divisão por 11. Este processo é repetido para o segundo dígito verificador.
def validar_cpf(cpf):
cpf = ''.join(filter(str.isdigit, cpf))
if len(cpf) != 11 or len(set(cpf)) == 1:
return False
# Primeiro dígito verificador
soma = sum(int(digito) * peso for digito, peso in zip(cpf[:9], range(10, 1, -1)))
resto = soma % 11
digito1 = 0 if resto < 2 else 11 - resto
# Segundo dígito verificador
soma = sum(int(digito) * peso for digito, peso in zip(cpf[:10], range(11, 1, -1)))
resto = soma % 11
digito2 = 0 if resto < 2 else 11 - resto
return str(digito1) == cpf[9] and str(digito2) == cpf[10]
Para validar CPFs em lote ou integrar em sistemas, o script Python é ideal. Salve o código em um arquivo validar_cpf.py e execute no terminal.
import sys
def validar_cpf(cpf):
cpf = ''.join(filter(str.isdigit, cpf))
if len(cpf) != 11 or len(set(cpf)) == 1:
return False
soma = sum(int(digito) * peso for digito, peso in zip(cpf[:9], range(10, 1, -1)))
resto = soma % 11
digito1 = 0 if resto < 2 else 11 - resto
soma = sum(int(digito) * peso for digito, peso in zip(cpf[:10], range(11, 1, -1)))
resto = soma % 11
digito2 = 0 if resto < 2 else 11 - resto
return str(digito1) == cpf[9] and str(digito2) == cpf[10]
if __name__ == "__main__":
cpf = input("Digite o CPF (com ou sem pontuação): ")
if validar_cpf(cpf):
print("CPF válido!")
else:
print("CPF inválido!")
No Excel, você pode validar CPFs usando uma fórmula complexa. Supondo que o CPF esteja na célula A1:
=SE(E(SOMA(POTÊNCIA(VALOR(MID(A1;{9;8;7;6;5;4;3;2;1};1)),{10;9;8;7;6;5;4;3;2}))*10%11=VALOR(MID(A1;10;1));OU(SOMA(POTÊNCIA(VALOR(MID(A1;{10;9;8;7;6;5;4;3;2;1};1)),{11;10;9;8;7;6;5;4;3;2}))*10%11=VALOR(MID(A1;11;1));FALSO);FALSO)
| CPF de Entrada | Válido? | Observação |
|---|---|---|
| 123.456.789-09 | Não | Dígitos verificadores incorretos |
| 529.982.247-25 | Sim | CPF válido matematicamente |
| 111.111.111-11 | Não | Sequência inválida (todos os dígitos iguais) |
Com este método, você valida CPFs de forma rápida e confiável, sem depender de conexão com a internet ou acesso à base da Receita Federal. O algoritmo de verificação dos dígitos é suficiente para garantir a integridade do número informado, prevenindo erros comuns e garantindo a qualidade dos dados em seus sistemas.