Como funciona a lógica da validação do CPF
Hoje você vai aprender como funciona o cálculo de verificação do CPF. Este artigo vai abordar como funciona a regra de validação do CPF.
O que você vai ler neste artigo?
* O que é o CPF?
* Quantos números tem o CPF
* Regra de Validação do CPF
* Cálculo do primeiro dígito verificador
* Cálculo do segundo dígito verificador
* Como validar o CPF utilizando JavaScript
* Exemplos de validação do CPF utilizando PHP, SQL Server e MySQL.
O que é o CPF?
O Cadastro de Pessoas Físicas (CPF) é o registro de um cidadão na Receita Federal do Brasil. Devem estar inscritos todos os contribuintes do tipo pessoa físicas, nacionais e estrangeiros com negócios no Brasil. O Cadastro de Pessoas Físicas foi criado em 1968. Ao contrário do RG, o CPF é um documento único a nível nacional e por muito tempo foi o único cadastro nacional a conter os dados de brasileiros natos, naturalizados e estrangeiros residentes no país.
Quantos números tem o CPF
O número de CPF é composto por 11 dígitos. Os 9 primeiros são os números base, e os 2 últimos são os chamados dígitos verificadores, que são utilizados para validar se os 9 números base estão corretos. É importante lembrar que mesmo que o número seja válido, isso não quer dizer que ele esteja cadastrado na Receita Federal.
Não existem CPFs onde todos os números sejam iguais entre si.
Validação do CPF
Vamos fazer passo a passo a verificação de um número de CPF gerado de forma aleatória atráves da utilização de um site Gerador de CPF. O site usado para gerar o CPF aleatório usado neste artigo foi este:
Existem vários sites que fazem isso, você pode escolher qual quiser. O número gerado foi 344858610-23
O CPF possui 2 digitos verificadores, que são os 2 últimos dígitos. Eles servem para validar os demais digitos, desta forma evitam fraudes ou erros de digitação.
Cálculo do primeiro dígito verificador
O primeiro dígito verificador é o "2" (posição 10) e o segundo é o "3" (posição 11).
A primeira validação é multiplicar cada número base em separado, começando com 10 e terminando com 2:
3 x 10 = 30
4 x 9 = 36
4 x 8 = 32
8 x 7 = 56
5 x 6 = 30
8 x 5 = 40
6 x 4 = 24
1 x 3 = 3
0 x 2 = 0
30 + 36 + 32 + 56 + 30 + 40 + 24 + 3 + 0 = 251
Depois, se divide o resultado por 11:
251 /11 = 22,81
Vamos pegar o resto desta divisão
Resto = 251 - (11 * 22) = 9
REGRA 1: Se o resto for 0 ou 1, então o primeiro dígito verificador é igual a 0.
REGRA 2: Se o resto for 2, 3, 4, 5, 6, 7, 8, 9 ou 10, então o primeiro dígito verificador é a diferença entre o número 11 e o resto da divisão por 11
Em nosso exemplo, se aplica a Regra 2
Primeiro dígito verificador: 11 - 9 = 2
Cálculo do segundo dígito verificador
Agora vem a validação final, que é a do segundo dígito verificador. Será necessário multiplicar cada número base em separado, junto com o primeiro dígito verificador, começando com 11 e terminando com 2:
3 x 11 = 33
4 x 10 = 40
4 x 9 = 36
8 x 8 = 64
5 x 7 = 35
8 x 6 = 48
6 x 5 = 30
1 x 4 = 4
0 x 3 = 0
2 x 2 = 4
33 + 40 + 36 + 64 + 35 + 48 + 30 + 4 + 0 + 4 = 294
Depois, se divide o resultado por 11:
294/ 11 = 26,72
Vamos pegar o resto desta divisão
Resto = 294 - (11 * 26) = 8
REGRA 1: Se o resto for 0 ou 1, então o segundo dígito verificador será igual a 0.
REGRA 2: Se o resto for 2, 3, 4, 5, 6, 7, 8, 9 ou 10, então o segundo dígito verificador é a diferença entre o número 11 e o resto da divisão por 11
Em nosso exemplo, se aplica a Regra 2
Segundo dígito verificador: 11 - 8 = 3
O numero do CPF tem mais uma informação. O último número base (o número localizado na posição 9) serve para marcar qual o estado de origem daquele cadastro.
0 - Rio Grande do Sul
1 - Distrito Federal, Goiás, Mato Grosso, Mato Grosso do Sul e Tocantins
2 - Amazonas, Pará, Roraima, Amapá, Acre e Rondônia
3 - Ceará, Maranhão e Piauí
4 - Paraíba, Pernambuco, Alagoas e Rio Grande do Norte
5 - Bahia e Sergipe
6 - Minas Gerais
7 - Rio de Janeiro e Espírito Santo
8 - São Paulo
9 - Paraná e Santa Catarina
A lógica para validar um CNPJ é parecida com a utilizada pelo CPF. Se deseja saber como é validado um CNPJ, pode consultar o link a seguir:
Como funciona a lógica de validação do CNPJ
Como validar o CPF utilizando JavaScript
Aqui tem um exemplo de função para validar CPF com JavaScript:
function checaCPF (CPF) {
if (CPF.length != 11 || CPF == "00000000000" || CPF == "11111111111" ||
CPF == "22222222222" || CPF == "33333333333" || CPF == "44444444444" ||
CPF == "55555555555" || CPF == "66666666666" || CPF == "77777777777" ||
CPF == "88888888888" || CPF == "99999999999" || CPF == "01234567890")
return false;
soma = 0;
for (i=0; i < 9; i ++)
soma += parseInt(CPF.charAt(i)) * (10 - i);
resto = 11 - (soma % 11);
if (resto == 10 || resto == 11)
resto = 0;
if (resto != parseInt(CPF.charAt(9)))
return false;
soma = 0;
for (i = 0; i < 10; i ++)
soma += parseInt(CPF.charAt(i)) * (11 - i);
resto = 11 - (soma % 11);
if (resto == 10 || resto == 11)
resto = 0;
if (resto != parseInt(CPF.charAt(10)))
return false;
return true;
}
console.log(checaCPF('34485861023'));
Exemplos de validação do CPF utilizando PHP, SQL Server e MySQL
Se você deseja aprender como pode validar o formato do CPF utilizando um banco de dados SQL, consulte as páginas a seguir:
Se a sua necessidade é validar o CPF utilizando PHP, consulte a página a seguir: