Gerar CPF com base no último dígito antes dos verificadores

1. Gerar CPF com base no último dígito antes dos verificadores

Raphael Monteiro
rmonteiraum

(usa CentOS)

Enviado em 03/02/2013 - 14:17h

Bom Dia,

Estou tentando, quebrando a cabeça para fazer uma fórmula para gerar CPFs com base no último dígito antes do verificador.

EX: xxx.xxx.xx7-xx onde "7" é o último dígito.

Com base nas pesquisas que realizei, o último dígito antes do código verificador, identifica o estado ou região no qual foi emitido o CPF para o cidadão.

O interesse nesta "Fórmula", é gerar uma lista com CPF´s válidos do meu estado, para incluir em uma aplicação.


Hoje, já tenho uma aplicação que solicita o CPF do cidadão e retorna o nome, sexo e nome da mãe. Gostaria de "melhorar" a resposta, tendo os CPFs do meu estado/região pré-carregados.

Alguém tem alguma sugestão da fórmula a ser utilizada?


  


2. Re: Gerar CPF com base no último dígito antes dos verificadores

Sergio Teixeira - Linux User # 499126
Teixeira

(usa Linux Mint)

Enviado em 03/02/2013 - 14:58h

Eu sugiro a você desistir desse caminho, pois a listagem gerada seria imensa.
É mais rápido, fácil e prático calcular os dígitos verificadores na hora como todo mundo faz.
Imagine a quantidade de combinações possíveis com 9 dígitos, onde apenas um deles é conhecido.

Obs:
Teoricamente, 000.000.017.xx seria um número válido.


3. Re: Gerar CPF com base no último dígito antes dos verificadores

Raphael Monteiro
rmonteiraum

(usa CentOS)

Enviado em 03/02/2013 - 17:16h

Falae Sergio, blz?

Não estou me importando muito com o "tamanho" da listagem.
Tenho a ferramenta que está sendo paga há meses e está sub-utilizada.
Tenho 10.000 (DEZ MIL) consultas diárias e não utilizo nem 200.

Entende o porque da minha pergunta?

Hoje, minha aplicação realiza a consulta no serviço PAGO e retorna os dados via api com curl e outras gambiarras.

Essa "gambiarra", faz com que a resposta seja lenta... quase 2 segundos, às vezes até mais (5, 7 segundos).

Quando eu já tenho os dados no meu banco, esta consulta é instantânea, entende?



Teixeira escreveu:

Eu sugiro a você desistir desse caminho, pois a listagem gerada seria imensa.
É mais rápido, fácil e prático calcular os dígitos verificadores na hora como todo mundo faz.
Imagine a quantidade de combinações possíveis com 9 dígitos, onde apenas um deles é conhecido.

Obs:
Teoricamente, 000.000.017.xx seria um número válido.





4. Re: Gerar CPF com base no último dígito antes dos verificadores

Sergio Teixeira - Linux User # 499126
Teixeira

(usa Linux Mint)

Enviado em 07/02/2013 - 15:40h

Estive sem internet durante vários dias (modem pifado).

Veja como é feito o cálculo do CPF em

http://www.gerardocumentos.com.br/entenda-a-formula-do-cpf

Sugiro que você, com base nos dados acima, faça um loop que vá de zero até 999.999.99x onde x seja sempre igual a 7, calcule os dígitos corretos e guarde esses valores em uma tabela.

Mas eu acho que essa consulta pode durar esses mesmos 2 segundos que você está reclamando.
Apenas que, uma vez tendo uma tabela confiável, não irá mais precisar pagar pelo serviço.
Boa sorte!


5. Re: Gerar CPF com base no último dígito antes dos verificadores

Raphael Monteiro
rmonteiraum

(usa CentOS)

Enviado em 07/02/2013 - 21:04h

Vou tentar alguma coisa em cima do que você sugeriu.

Quanto ao tempo da pesquisa, o que vai ocorrer é que vou pesquisar durante a madrugada e salvar no banco os resultados.

Durante o dia, deixo o aistema disponível para as consultas "reais".

Então, se vai demorar 2 segundos ou dois minutos por consulta na madrugada, é indiferente.



Teixeira escreveu:

Estive sem internet durante vários dias (modem pifado).

Veja como é feito o cálculo do CPF em

http://www.gerardocumentos.com.br/entenda-a-formula-do-cpf

Sugiro que você, com base nos dados acima, faça um loop que vá de zero até 999.999.99x onde x seja sempre igual a 7, calcule os dígitos corretos e guarde esses valores em uma tabela.

Mas eu acho que essa consulta pode durar esses mesmos 2 segundos que você está reclamando.
Apenas que, uma vez tendo uma tabela confiável, não irá mais precisar pagar pelo serviço.
Boa sorte!