O que está por trás de um gerador de CPF
Boa noite computêros, hoje vou postar um algoritmo que a Vanessa me mandou por e-mail que é muito útil quando estamos fazendo testes em sistemas que precisam de uma validação de CPF. Este algoritmo irá dar a luz que faltava para entender o que rola por trás de um gerador de CPF, vale ressaltar que o algoritmo deve ser utilizado para fins de testes de software, não sendo o blog computêro ou seus autores responsáveis pela má utilização do algoritmo, caberá ao usuário do site a responsabilidade pela utilização das informações aqui contidas.
Algoritmo do CPF – O que está por trás de um gerador de CPF
O CPF é composto de 11 dígitos, sendo 9 dígitos “normais” e 2 para verificação, o algoritmo para verificação de CPF começa com a geração de 9 números aleatórios e somente depois verificaremos qual será o dígito verificador.
Para exemplificar o processo vamos gerar um CPF válido, calculando os dígitos verificadores de um número hipotético, 111.444.777-XX.
- Calculando o Primeiro Dígito Verificador
O primeiro dígito verificador do CPF é calculado utilizando-se o seguinte algoritmo.
1) Distribua os 9 primeiros dígitos em um quadro colocando os pesos 10, 9, 8, 7, 6, 5, 4, 3, 2 abaixo da esquerda para a direita, conforme representação abaixo:
|
1 |
1 |
1 |
4 |
4 |
4 |
7 |
7 |
7 |
|
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
2) Multiplique os valores de cada coluna:
|
1 |
1 |
1 |
4 |
4 |
4 |
7 |
7 |
7 |
|
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
|
10 |
9 |
8 |
28 |
24 |
20 |
28 |
21 |
14 |
3) Calcule o somatório dos resultados (10+9+…+21+14) = 162
4) O resultado obtido (162) será divido por 11. Considere como quociente apenas o valor inteiro, o resto da divisão será responsável pelo cálculo do primeiro dígito verificador.
Vamos acompanhar: 162 dividido por 11 obtemos 14 como quociente e 8 como resto da divisão. Caso o resto da divisão seja menor que 2, o nosso primeiro dígito verificador se torna 0 (zero), caso contrário subtrai-se o valor obtido de 11, que é nosso caso. Sendo assim nosso dígito verificador é 11-8, ou seja, 3 (três). Já temos portanto parte do CPF, confira: 111.444.777-3X.
Calculando o Segundo Dígito Verificador
1) Para o cálculo do segundo dígito será usado o primeiro dígito verificador já calculado. Montaremos uma tabela semelhante a anterior só que desta vez usaremos na segunda linha os valores 11,10,9,8,7,6,5,4,3,2 já que estamos incorporando mais um algarismo para esse cálculo. Veja:
|
1 |
1 |
1 |
4 |
4 |
4 |
7 |
7 |
7 |
3 |
|
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
2) Na próxima etapa faremos como na situação do cálculo do primeiro dígito verificador, multiplicaremos os valores de cada coluna e efetuaremos o somatório dos resultados obtidos: (11+10+…+21+6) = 204.
|
1 |
1 |
1 |
4 |
4 |
4 |
7 |
7 |
7 |
3 |
|
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
|
11 |
10 |
9 |
32 |
28 |
24 |
35 |
28 |
21 |
6 |
3) Realizamos novamente o cálculo do módulo 11. Dividimos o total do somatório por 11 e consideramos o resto da divisão.
Vamos acompanhar: 204 dividido por 11 obtemos 18 como quociente e 6 como resto da divisão.
4) Caso o valor do resto da divisão seja menor que 2, esse valor passa automaticamente a ser zero, caso contrário (como no nosso caso) é necessário subtrair o valor obtido de 11 para se obter o dígito verificador. Logo, 11-6= 5, que é o nosso segundo dígito verificador.
Neste caso chegamos ao final dos cálculos e descobrimos que os dígitos verificadores do nosso CPF hipotético são os números 3 e 5, portanto o CPF ficaria assim: 111.444.777-35.
É isso aí computêros, este é o algoritmo para geração de CPF, espero que possa ajudá-los caso haja necessidade.
o post é bem interessante. agora só falta gerarmos o código