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