Validador de cartão de débido e crédito em Perl
Publicado por Perfil removido (última atualização em 21/04/2014)
[ Hits: 47.645 ]
Antes de tudo, o objetivo daqui é sempre o conhecimento, não criei o código com intuito de ser usado para "banker" (apesar de isso acontecer), mas sim para entender como podemos validar cartões de crédito em aplicações diversas, como por exemplo sites de compras online ou software de vendas, PDVs etc...
#!/usr/bin/perl
#############################################
## ##
## http://koubacktr.wordpress.com ##
## http://twitter.com/kouback_tr_ ##
## ##
#############################################
## Validador de cartão de créditoe débito ##
## Verify card ##
## By KoubackTr 2014 ##
#############################################
print <<a;
===========================================================
Valid Card // Validador de cartões de crédito e débito //
===========================================================
a
$card=$ARGV[0] || die "Use: validcard.pl <card number> \n";
my $cartao = length($card);
if($cartao==16){ # exigi 16 digitos no numro do cartão
# DIVIDINDO STRINGS E PEGANDO VALORES PARA ENGENHARIA
$numerocartao = "$card";
my @validade = split(//,$numerocartao);
$v1=$validade[0]*2," ";
$s1=$validade[1];
$v2=$validade[2]*2," ";
$s2=$validade[3];
$v3=$validade[4]*2," ";
$s3=$validade[5];
$v4=$validade[6]*2," ";
$s4=$validade[7];
$v5=$validade[8]*2," ";
$s5=$validade[9];
$v6=$validade[10]*2," ";
$s6=$validade[11];
$v7=$validade[12]*2," ";
$s7=$validade[13];
$v8=$validade[14]*2," ";
$s8=$validade[15];
$v9=$validade[16]*2,"";
my $n1="$v1$v2$v3$v4$v5$v6$v7$v8$v9";
my @validade2 = split(//,$n1);
$vv0=$validade2[0];
$vv1=$validade2[1];
$vv2=$validade2[2];
$vv3=$validade2[3];
$vv4=$validade2[4];
$vv5=$validade2[5];
$vv6=$validade2[6];
$vv7=$validade2[7];
$vv8=$validade2[8];
$vv9=$validade2[9];
$vv10=$validade2[10];
$vv11=$validade2[11];
$vv12=$validade2[12];
$vv13=$validade2[13];
$vv14=$validade2[14];
$vv15=$validade2[15];
$vv16=$validade2[16];
$vv17=$validade2[17];
$vv18=$validade2[18];
$vv19=$validade2[19];
############### // Somando tudo // ##############
my $d0 = $vv0 + $vv1 + $s1 + $vv2 + $s2 +$vv3 + $s3 + $vv4 + $s4 + $vv5 + $s5 + $vv6 + $s6 + $vv7 + $s7 + $vv8 + $s8 + $vv9 + $vv10 + $vv11 + $vv12 + $vv13 + $vv14 + $vv15 + $vv16 + $vv17 + $vv18 + $vv19;
##### CONDIÇÃO: se ultimo numero do resultado da soma é = 0 isso significa que é divisivel por 10
##### se é divisiovel por 10, é válido, se não, é inválido
my $val=$d0 / 10;
my @validade3 = split(//,$d0);
$val0=$validade3[0];
$val1=$validade3[1];
}else{
die "\n\t\t\t[!] Numero inválido, deve conter 16 digitos.\n\n";
}
if($val1==0){
print "\n\t\t\t[+] Cartão Válido\n\n"; #Retorno válido
}else{
print "\n\t\t\t[!] Cartão Inválido\n\n"; #Retorno inválido
}
Streaming Kiss FM (SP 102,1) Player em perl com interface grafica (Tk)
GenHASH - Gerador de hashes SHA1, MD5 e Base64 em Perl
Orientação a Objetos - Criando e usando uma classe em Perl
Nenhum comentário foi encontrado.
Maquina modesta - a vez dos navegadores ferrarem o usuario
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor
Resolvendo o bloqueio do Módulo Warsaw no Arch Linux (Porta 30900)
Replicação SYSVOL no Samba 4 com Syncthing
Samba 4 com Replicação e LDAP Seguro (LDAPS/TLS)
Configurando o Cairo Dock individualmente em ambientes diferentes na mesma maquina
Calculadoras online gratuitas para o dia a dia do usuário Linux
Governo da França vai trocar Windows por Linux (7)
Metafísica e espiritualidade funciona de verdade! Comprovação pessoal (12)
Bluetooth desconecta logo após conectar, ubuntu 25.10 (2)









