Gerador de CPF válido em Perl
Publicado por Perfil removido (última atualização em 21/04/2014)
[ Hits: 7.029 ]
Fiz este script para estudar melhor o algoritmo de validação de CPF, espero que seja útil para alguém.
#!/usr/bin/perl
use strict;
use warnings;
###################################
###################################
### Algoritimo de CPF válido ###
### by KoubackTr / 2014 ###
### ###
## http://koubacktr.wordpress.com #
## http://twitter.com/kouback_tr_ #
### ###
###################################
###################################
my $numeros = 9;
my $digito1=int(rand($numeros));
my $digito2=int(rand($numeros));
my $digito3=int(rand($numeros));
my $digito4=int(rand($numeros));
my $digito5=int(rand($numeros));
my $digito6=int(rand($numeros));
my $digito7=int(rand($numeros));
my $digito8=int(rand($numeros));
my $digito9=int(rand($numeros));
#my $aleatorio = $digito1$digito2$digito3$digito4$digito5$digito6$digito7$digito8$digito9;
my $totalA1 = $digito1 * 10;
my $totalA2 = $digito2 * 9;
my $totalA3 = $digito3 * 8;
my $totalA4 = $digito4 * 7;
my $totalA5 = $digito5 * 6;
my $totalA6 = $digito6 * 5;
my $totalA7 = $digito7 * 4;
my $totalA8 = $digito8 * 3;
my $totalA9 = $digito9 * 2;
my $cpf1 = $totalA1 + $totalA2 + $totalA3 + $totalA4 + $totalA5 + $totalA6 + $totalA7 + $totalA8 + $totalA9;
my $dividido1 = int($cpf1 % 11);
my @valor1 = split(//,$dividido1);
my $condicao1 = $valor1[0]; # DEBUG
if($condicao1==0 or $condicao1==1){
my $digito10=0;
my $totalB1 = $digito1 * 11;
my $totalB2 = $digito2 * 10;
my $totalB3 = $digito3 * 9;
my $totalB4 = $digito4 * 8;
my $totalB5 = $digito5 * 7;
my $totalB6 = $digito6 * 6;
my $totalB7 = $digito7 * 5;
my $totalB8 = $digito8 * 4;
my $totalB9 = $digito9 * 3;
my $totalB10 = $digito10 * 2;
my $cpf2 = $totalB1 + $totalB2 + $totalB3 + $totalB4 + $totalB5 + $totalB6 + $totalB7 + $totalB8 + $totalB9 + $totalB10;
my $dividido2 = int($cpf2 % 11);
my @valor2 = split(//,$dividido2);
my $condicao2 = $valor2[0]; # DEBUG
# um IF dentro do IF #
if($condicao2==0 or $condicao2==1){
my $digito11=0;
print "\n\t\t[+] CPF Válido: $digito1$digito2$digito3.$digito4$digito5$digito6.$digito7$digito8$digito9-$digito10$digito11\n\n";
print "\n\t\t[+] CPF Válido: $digito1$digito2$digito3$digito4$digito5$digito6$digito7$digito8$digito9$digito10$digito11\n\n";
}else{
my $digito11=11-$condicao2;
print "\n\t\t[+] CPF Válido: $digito1$digito2$digito3.$digito4$digito5$digito6.$digito7$digito8$digito9-$digito10$digito11\n\n";
print "\n\t\t[+] CPF Válido: $digito1$digito2$digito3$digito4$digito5$digito6$digito7$digito8$digito9$digito10$digito11\n\n";
}
}else{
my $digito10=11-$condicao1;
my $totalB1 = $digito1 * 11;
my $totalB2 = $digito2 * 10;
my $totalB3 = $digito3 * 9;
my $totalB4 = $digito4 * 8;
my $totalB5 = $digito5 * 7;
my $totalB6 = $digito6 * 6;
my $totalB7 = $digito7 * 5;
my $totalB8 = $digito8 * 4;
my $totalB9 = $digito9 * 3;
my $totalB10 = $digito10 * 2;
my $cpf2 = $totalB1 + $totalB2 + $totalB3 + $totalB4 + $totalB5 + $totalB6 + $totalB7 + $totalB8 + $totalB9 + $totalB10;
my $dividido2 = int($cpf2 % 11);
my @valor2 = split(//,$dividido2);
my $condicao2 = $valor2[0]; # DEBUG
# outro IF dentro do ELSE do IF que tem outro IF # buguei...
if($condicao2==0 or $condicao2==1){
my $digito11=0;
print "\n\t\t[+] CPF Válido: $digito1$digito2$digito3.$digito4$digito5$digito6.$digito7$digito8$digito9-$digito10$digito11\n\n";
print "\n\t\t[+] CPF Válido: $digito1$digito2$digito3$digito4$digito5$digito6$digito7$digito8$digito9$digito10$digito11\n\n";
}else{
my $digito11=11-$condicao2;
print "\n\t\t[+] CPF Válido: $digito1$digito2$digito3.$digito4$digito5$digito6.$digito7$digito8$digito9-$digito10$digito11\n\n";
print "\n\t\t[+] CPF Válido: $digito1$digito2$digito3$digito4$digito5$digito6$digito7$digito8$digito9$digito10$digito11\n\n";
}
}
GenHASH - Gerador de hashes SHA1, MD5 e Base64 em Perl
Orientação a Objetos - Criando e usando uma classe em Perl
Conexão com Banco de Dados Postgres
Nenhum comentário foi encontrado.
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Erro no suitable vídeo mode (12)
Navegar no Firefox sem passar pelo Google [RESOLVIDO] (2)
Pergunta: Meu teclado não está respondendo direito como e consertar? (3)
Erro: Lazarus 4.2 64 no Linux Mint não entra mais apos ajustar desktop... (1)









