Gerador de CPF válido em Perl
Publicado por Perfil removido (última atualização em 21/04/2014)
[ Hits: 6.632 ]
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"; } }
Conexão com Banco de Dados Postgres
GenHASH - Gerador de hashes SHA1, MD5 e Base64 em Perl
Validador de cartão de débido e crédito em Perl
Nenhum comentário foi encontrado.
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
E a guerra contra bots continua
Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário
Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Alguém pode me ajudar porfavor como executar comandos ao iniciar no i3... (2)
Debian Bookworm para a versão beta Debian 13 Trixie (2)
Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel... (21)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba