QUAL A LOGICA DO DIGITO VERIFICADOR CPF
Galera eu possuo a rotina para verificação do CPF, q peguei aqui no site mesmo.
Coloquei no meu projeto funcionou belezinha, mas não entendi bulhufas da lógica.
Então gostaria de entender como faz e como cria o digito verificador, pq um cliente meu quer colocar digito verificador nos código dele, para evitar erro de digitação, então primeiro como é a lógica do DF do CPF e como criar um DF?
Obrigado
Coloquei no meu projeto funcionou belezinha, mas não entendi bulhufas da lógica.
Então gostaria de entender como faz e como cria o digito verificador, pq um cliente meu quer colocar digito verificador nos código dele, para evitar erro de digitação, então primeiro como é a lógica do DF do CPF e como criar um DF?
Obrigado
cara depois eu ti mando isso, eu tenhu um belo exemplo de qual é a logica que ele usa, depois eu ti respondo, pois estou na escola. Falow
Olá amigo, este codigo explica a lógica principalmente, apesar de ser JAVASCRIPT... mas a lógica você vai entender...
LÓ“GICA DE VALIDAÇÃO DE CPF
Não se esqueça de encerrar o tópico
LÓ“GICA DE VALIDAÇÃO DE CPF
Não se esqueça de encerrar o tópico
Obrigado Germanir! a Lógica entendi, era exatamente isso que eu queria saber.
Mas agora como posso fazer um verificador meu? existe alguma regra? ou existe uma padrão usado por todos?
Exemplo:
Qual a fórmula para um código com 3 digitos? ou para 4 digitos? .....
Obrigado
Mas agora como posso fazer um verificador meu? existe alguma regra? ou existe uma padrão usado por todos?
Exemplo:
Qual a fórmula para um código com 3 digitos? ou para 4 digitos? .....
Obrigado
Pelo o que você viu o objetivo todo é simplesmente ver se a numeração principal, bate com os 2 dÃgitos verificadores, para evitar fraudes, e validar o próprio!! Mas como já existem vários programas que usam este algorÃtimo para criar números de CPF e etc, acho que a tendência é acontecer o mesmo com o cep.... depois que os correios disponibilizaram o CEP pela web, a verificação é feita atraves de um grande banco de dados com todos os ceps, acho que futuramente a receita federal pode fazer o mesmo, a medida que web for mais ampla e acessÃvel.
Agora sobre os padrões sugiro que estude mais um pouco de matemática, não existe uma regra comum, por exemplo, precisei um vez gerar um código, e depois verificar se o mesmo era verdadeiro, para gerar o registro, usei 8 Digitos
Este era o codigo gerado
1403100503
Day(Date) & Month(Date) & Hour(Time) & Minute(Time) & Second(Time)
onde 14 é o dia com 2 digitos
onde 03 é o mes com 2 digitos
onde 10 é a hora.. 2 digitos
onde 05 é os minutos 2 digitos
onde 03 é os segundos 2 digitos
E para verificar e gerar o codigo de registro eu SOMAVA tudo pelo digito anterior
(14+03) & (03+10) & (10+05) & (05+03)
Resultado
1713150703
O sistema gerava
1403100503
E o codigo do registro a ser digitado era
1713150703
obs: cada vez aque o programa expirava era gerado um código de registro diferente.. pois os mesmo dependia de hora, dia e etc.
Day(Date) & Month(Date) & Hour(Time) & Minute(Time) & Second(Time)
rsrss..
é uma lógica banal... sei... mas é mais ou menor por este caminho... entende... resolveu meu problema temporariamente! E ninguém descobriu a lógica e crackeou meu programa... mas como falei... para ajudar mais ainda... poderia ser implementado uma criptografia pra ajudar...
Agora sobre os padrões sugiro que estude mais um pouco de matemática, não existe uma regra comum, por exemplo, precisei um vez gerar um código, e depois verificar se o mesmo era verdadeiro, para gerar o registro, usei 8 Digitos
Este era o codigo gerado
1403100503
Day(Date) & Month(Date) & Hour(Time) & Minute(Time) & Second(Time)
onde 14 é o dia com 2 digitos
onde 03 é o mes com 2 digitos
onde 10 é a hora.. 2 digitos
onde 05 é os minutos 2 digitos
onde 03 é os segundos 2 digitos
E para verificar e gerar o codigo de registro eu SOMAVA tudo pelo digito anterior
(14+03) & (03+10) & (10+05) & (05+03)
Resultado
1713150703
O sistema gerava
1403100503
E o codigo do registro a ser digitado era
1713150703
obs: cada vez aque o programa expirava era gerado um código de registro diferente.. pois os mesmo dependia de hora, dia e etc.
Day(Date) & Month(Date) & Hour(Time) & Minute(Time) & Second(Time)
rsrss..
é uma lógica banal... sei... mas é mais ou menor por este caminho... entende... resolveu meu problema temporariamente! E ninguém descobriu a lógica e crackeou meu programa... mas como falei... para ajudar mais ainda... poderia ser implementado uma criptografia pra ajudar...
Modulo 11 base 9
funciona assim:
DV módulo 11 corresponde ao resto da divisão por 11 do somatório da multiplicação de cada algarismo da base respectivamente por 9, 8, 7, 6, 5, 4, 3, 2, 1 e 0, a partir da unidade. O resto 10 é considerado 0. Veja, abaixo, exemplo de cálculo de DV módulo 11 para CPF:
2 8 0 0 1 2 3 8 9 4 = 6
x x x x x x x x x x
0 1 2 3 4 5 6 7 8 9
----------------------------
0+ 8+ 0+ 0+ 4+10+18+56+72+36 = 204à ·11=18, com resto 6
A Região Fiscal onde emitido o CPF (definida pelo nono dÃgito) tem a seguinte abrangência: 1 (DF-GO-MS-MT-TO), 2 (AC-AM-AP-PA-RO-RR), 3 (CE-MA-PI), 4 (AL-PB-PE-RN), 5 (BA-SE), 6 (MG), 7 (ES-RJ), 8 (SP), 9 (PR-SC) e 0 (RS). Mas, inexplicavelmente, já vi CPF válido, emitido no DF (Região 1) com o nono dÃgito = 5 (Região BA-SE).
funciona assim:
DV módulo 11 corresponde ao resto da divisão por 11 do somatório da multiplicação de cada algarismo da base respectivamente por 9, 8, 7, 6, 5, 4, 3, 2, 1 e 0, a partir da unidade. O resto 10 é considerado 0. Veja, abaixo, exemplo de cálculo de DV módulo 11 para CPF:
2 8 0 0 1 2 3 8 9 4 = 6
x x x x x x x x x x
0 1 2 3 4 5 6 7 8 9
----------------------------
0+ 8+ 0+ 0+ 4+10+18+56+72+36 = 204à ·11=18, com resto 6
A Região Fiscal onde emitido o CPF (definida pelo nono dÃgito) tem a seguinte abrangência: 1 (DF-GO-MS-MT-TO), 2 (AC-AM-AP-PA-RO-RR), 3 (CE-MA-PI), 4 (AL-PB-PE-RN), 5 (BA-SE), 6 (MG), 7 (ES-RJ), 8 (SP), 9 (PR-SC) e 0 (RS). Mas, inexplicavelmente, já vi CPF válido, emitido no DF (Região 1) com o nono dÃgito = 5 (Região BA-SE).
seguinte:
se você mover todos os dÃgitos uma casa a direita e o que estava por último passar a ser o primeiro da esquerda os códigos que estão por aà vão deixar o cpf digitádo passar como válido.
não sei se é o código de verificação que está sendo utilizado que está furado, ou a formula de cálculo que os grandes matemáticos inventaram para o cpf é que está furada.
se você mover todos os dÃgitos uma casa a direita e o que estava por último passar a ser o primeiro da esquerda os códigos que estão por aà vão deixar o cpf digitádo passar como válido.
não sei se é o código de verificação que está sendo utilizado que está furado, ou a formula de cálculo que os grandes matemáticos inventaram para o cpf é que está furada.
Citação:Mas, inexplicavelmente, já vi CPF válido, emitido no DF (Região 1) com o nono dÃgito = 5 (Região BA-SE).
Meu nono DIGITO é 4.................
Acho que está regra não é correta...
detalhe.. sou do DISTRITO FEDERAL
Obrigado, pelas explicações galera
Vou dar mais umas estudas em DF.
Vou dar mais umas estudas em DF.
Tópico encerrado , respostas não são mais permitidas