Gerador CPF

7 respostas
cafezin

Bom Pessoal,

Gostaria de saber se alguém conhece um método simples, em java, para gerar cpfs.
Veja bem, não é validar um cpf, também não é uma máscara.

Os exemplos que encontrei são de validação, ou são em outras linguagens. Até poderia implementar um… mas agradeço caso alguém tenha algum por ae.
Quando a gente precisa, não encontra…
=p

Muito obrigado

7 Respostas

Priuli

ñ conheço, + se encontrar ou implementar um, posta ai!! se funfar posso até adicionar no meu proj. de Utilirarios(OpenSutils-Br4J)

tutu_rp

Acredito que é só gerar os 9 dígitos aleatório e depois usando o mesmo metado que valida o CPF para determinar os 2 últimos dígitos

M

tutu_rp:

Acredito que é só gerar os 9 dígitos aleatório e depois usando o mesmo metado que valida o CPF para determinar os 2 últimos dígitos


Exatamente. Quaisquer 9 dígitos e depois use o algoritmo de validação para gerar os 2 últimos dígitos (os verificadores). Acho que a única restrição para gerar um CPF válido assim é que os 9 primeiros dígitos não podem ser iguais.

D

Já vi há um tempo atrás um código desse em java. Não lembro onde mas digo uma coisa. Não é difícil programar isso. Você somente tem de saber quais são as regras que a numeração obedece e implementar.

Mais fácil do que pegar o código em outra linguagem e passar para java, você procura as regras descritas e implementa seguindo a “receita”

Pelo que lembro não tem muito segredo.

N

Opa Cafezin,

Veja se isso te ajuda, acabei procurando algo na net e encontrei isso:
private static String calcDigVerif(String num) {  
        Integer primDig, segDig;  
        int soma = 0, peso = 10;  
        for (int i = 0; i < num.length(); i++)  
                soma += Integer.parseInt(num.substring(i, i + 1)) * peso--;  
  
        if (soma % 11 == 0 | soma % 11 == 1)  
            primDig = new Integer(0);  
        else  
            primDig = new Integer(11 - (soma % 11));  
  
        soma = 0;  
        peso = 11;  
        for (int i = 0; i < num.length(); i++)  
                soma += Integer.parseInt(num.substring(i, i + 1)) * peso--;  
          
        soma += primDig.intValue() * 2;  
        if (soma % 11 == 0 | soma % 11 == 1)  
            segDig = new Integer(0);  
        else  
            segDig = new Integer(11 - (soma % 11));  
  
        return primDig.toString() + segDig.toString();  
    }  
  
    public static String geraCPF() {  
        String iniciais = "";  
        Integer numero;  
        for (int i = 0; i < 9; i++) {  
            numero = new Integer((int) (Math.random() * 10));  
            iniciais += numero.toString();  
        }  
        return iniciais + calcDigVerif(iniciais);  
    }  
  
    public static boolean validaCPF(String cpf) {  
        if (cpf.length() != 11)  
            return false;  
  
        String numDig = cpf.substring(0, 9);  
        return calcDigVerif(numDig).equals(cpf.substring(9, 11));  
    } 
    
    public static void main (String args[]){
    	System.out.println(geraCPF());
    	System.out.println(validaCPF(geraCPF()));
    }
L

olha esse exemplo acabei de fazer rapidinhu é legallll

saco só valeu !!!

qualquer coisa post ai a dúvida!!

cafezin

neroBr

Perfeito!

Muito Obrigado!

Abraço!

Criado 30 de novembro de 2010
Ultima resposta 1 de dez. de 2010
Respostas 7
Participantes 7