Olá pessoal,
Uma coisa muito ultilizada para a maiorias dos desenvolvedores Web é o CPF, porque sempre tem algum sistema de cadastro pra testar ou pra criar.
Como muitas vezes precisamos de vários CPFs para testar nossos programas, eu descidi postar a lógica de como um CPF funciona, e talvez assim você possa criar seu próprio gerador de CPF para testar seus produtos.
O CPF é composto de 11 algorítmos, onde os 9 primeiros são os algorítmos randômicos, e os 2 ultimos são os algorítmos de verificação.
ex.
351.253.324-XX (XX > Algorítmo de verificação)
Bom agora vamos por a mão na massa! ;D
Para calcular o primeiro algorítmo de verificação.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:
2º Multiplique os valores de cada coluna:
3 |
5 |
1 |
2 |
5 |
3 |
3 |
2 |
4 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
30 |
45 |
8 |
14 |
30 |
15 |
12 |
6 |
8 |
3º Calcule o somatório dos resultados (30+45+...+6+8) = 168
4º O resultado obtido (168) será divido por 11. Considere como quociente apenas o valor inteiro (15), o resto da divisão (3) será responsável pelo cálculo do primeiro dígito verificador (X).
Ex: 168 dividido por 11 obtemos 15 como quociente e 3 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 vamos subtrair o valor obtido da divisão.
Ex: 11-3 = 8 (oito). Já temos portanto o primeiro algorítmo de verificação do nosso CPF, confira:
351.253.324-
8X.
Para calcular o segundo algorítmo de verificação.
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:
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: (33+50+...+12+16) = 212.
3 |
5 |
1 |
2 |
5 |
3 |
3 |
2 |
4 |
8 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
33 |
50 |
9 |
16 |
35 |
18 |
15 |
8 |
12 |
16 |
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: 212 dividido por 11 obtemos 19 como quociente e 3 como resto da divisão.
4º Caso o valor do resto da divisão seja menor que 2, esse valor passa automaticamente a ser 0 (zero), caso contrário vamos subtrair o valor obtido da divisão.
Ex: 11-3 = 8 (oito). Já temos portanto o segundo algorítmo de verificação do nosso CPF, confira:
351.253.324-
88.
Neste caso chegamos ao final dos cálculos e descobrimos que os dígitos verificadores do nosso CPF são os números
8 e
8, portanto o CPF ficaria assim: 351.253.324-88.
Básicamente esse gerador de CPF ele randômiza os 9 primeiros algorítimos e depois calcula a validação deles com a regrinha.
Até mais pessoal!
;D