#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#include <mmsystem.h>
using namespace std;
class check
{
private:
char card[16];
int par1, par2, par3, par4, par5, par6, par7, par8;
int impar1, impar2, impar3, impar4, impar5, impar6, impar7, impar8;
int multimpar1, multimpar2, multimpar3, multimpar4, multimpar5, multimpar6, multimpar7, multimpar8;
int uni, dec;
int resultado;
public:
void validacion();
void tipo();
void american_express();
void visa();
void mastercard();
void discover();
};
void check::validacion()
{
int lon;
do
{
system("cls");
cout<<"=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-="<<endl;
cout<<" ____ ___ ____ ____ _ _ ___ ____ ____ _ _"<<endl;
cout<<" ==== | [__] |--< |\\/| |__> |--| |--< |-:_"<<endl;
cout<<" CreditCard Checker by Stormd4rk"<<endl;
cout<<"============================================="<<endl;
cout<<"Digita el numero de la tarjeta"<<endl;
cin>>card;
lon=strlen(card);
if(lon != 16 && lon != 15)
{
cout<<"Numero invalido"<<endl;
getch();
}
}while(lon != 16 && lon != 15);
par1=card[1]-'0';
par2=card[3]-'0';
par3=card[5]-'0';
par4=card[7]-'0';
par5=card[9]-'0';
par6=card[11]-'0';
par7=card[13]-'0';
par8=card[15]-'0';
impar1=card[0]-'0';
impar2=card[2]-'0';
impar3=card[4]-'0';
impar4=card[6]-'0';
impar5=card[8]-'0';
impar6=card[10]-'0';
impar7=card[12]-'0';
impar8=card[14]-'0';
multimpar1=impar1*2;
multimpar2=impar2*2;
multimpar3=impar3*2;
multimpar4=impar4*2;
multimpar5=impar5*2;
multimpar6=impar6*2;
multimpar7=impar7*2;
multimpar8=impar8*2;
do
{
if(multimpar1 > 9)
{
uni = multimpar1 - multimpar1 / 10 * 10;
dec = (multimpar1 - multimpar1 / 100 * 100) / 10;
multimpar1=uni+dec;
}
}while(multimpar1 > 9);
do
{
if(multimpar2 > 9)
{
uni = multimpar2 - multimpar2 / 10 * 10;
dec = (multimpar2 - multimpar2 / 100 * 100) / 10;
multimpar2=uni+dec;
}
}while(multimpar2 > 9);
do
{
if(multimpar3 > 9)
{
uni = multimpar3 - multimpar3 / 10 * 10;
dec = (multimpar3 - multimpar3 / 100 * 100) / 10;
multimpar3=uni+dec;
}
}while(multimpar3 > 9);
do
{
if(multimpar4 > 9)
{
uni = multimpar4 - multimpar4 / 10 * 10;
dec = (multimpar4 - multimpar4 / 100 * 100) / 10;
multimpar4=uni+dec;
}
}while(multimpar4 > 9);
do
{
if(multimpar5 > 9)
{
uni = multimpar5 - multimpar5 / 10 * 10;
dec = (multimpar5 - multimpar5 / 100 * 100) / 10;
multimpar5=uni+dec;
}
}while(multimpar5 > 9);
do
{
if(multimpar6 > 9)
{
uni = multimpar6 - multimpar6 / 10 * 10;
dec = (multimpar6 - multimpar6 / 100 * 100) / 10;
multimpar6=uni+dec;
}
}while(multimpar6 > 9);
do
{
if(multimpar7 > 9)
{
uni = multimpar7 - multimpar7 / 10 * 10;
dec = (multimpar7 - multimpar7 / 100 * 100) / 10;
multimpar7=uni+dec;
}
}while(multimpar7 > 9);
do
{
if(multimpar8 > 9)
{
uni = multimpar8 - multimpar8 / 10 * 10;
dec = (multimpar8 - multimpar8 / 100 * 100) / 10;
multimpar8=uni+dec;
}
}while(multimpar8 > 9);
resultado = par1+par2+par3+par4+par5+par6+par7+par8+multimpar1+multimpar2+multimpar3+multimpar4+multimpar5+multimpar6+multimpar7+multimpar8;
if(resultado%10==0)
{
cout<<"=================="<<endl;
cout<<"Tarjeta Valida! =]"<<endl;
cout<<"=================="<<endl;
check::tipo();
}else
{
cout<<"==================="<<endl;
cout<<"Tarjeta Invalida =("<<endl;
cout<<"==================="<<endl;
}
}
void check::tipo()
{
if(card[0] == '3')
{
cout<<"[+]Tipo: American Express"<<endl;
check::american_express();
}else
{
if(card[0] == '4')
{
cout<<"[+]Tipo: Visa"<<endl;
check::visa();
}else
{
if(card[0] == '5')
{
cout<<"[+]Tipo: Mastercard"<<endl;
check::mastercard();
}else
{
if(card[0] == '6')
{
cout<<"[+]Tipo: Discover"<<endl;
check::discover();
}
}
}
}
}
void check::american_express()
{
int cid1;
int cid2;
int cid3;
int cid4;
int x;
cid1 = card[5]-'0';
cid2 = card[7]-'0';
cid3 = card[11]-'0';
if (card[2]-'0' == 9)
{
x = 1;
cid4 = x;
cout<<"[+]CID: "<<cid1<<cid2<<cid3<<cid4<<endl;
}else
{
x = card[2]-'0' + 1;
cid4 = x;
cout<<"[+]CID: "<<cid1<<cid2<<cid3<<cid4<<endl;
}
}
void check::visa()
{
int cvv21;
int cvv22;
int cvv23;
int x;
cvv21 = card[7]-'0';
cvv22 = card[11]-'0';
if (card[2]-'0' == 9)
{
x = 1;
cvv23 = x;
cout<<"[+]CVV2: "<<cvv21<<cvv22<<cvv23<<endl;
}else
{
x = card[2]-'0' + 1;
cvv23 = x;
cout<<"[+]CVV2: "<<cvv21<<cvv22<<cvv23<<endl;
}
}
void check::mastercard()
{
int cvc21;
int cvc22;
int cvc23;
int x;
cvc21 = card[7]-'0';
cvc22 = card[11]-'0';
if (card[2]-'0' == 9)
{
x = 1;
cvc23 = x;
cout<<"[+]CVC2: "<<cvc21<<cvc22<<cvc23<<endl;
}else
{
x = card[2]-'0' + 1;
cvc23 = x;
cout<<"[+]CVC2: "<<cvc21<<cvc22<<cvc23<<endl;
}
}
void check::discover()
{
int cvv21;
int cvv22;
int cvv23;
int x;
cvv21 = card[7]-'0';
cvv22 = card[11]-'0';
if (card[2]-'0' == 9)
{
x = 1;
cvv23 = x;
cout<<"[+]CVV2: "<<cvv21<<cvv22<<cvv23<<endl;
}else
{
x = card[2]-'0' + 1;
cvv23 = x;
cout<<"[+]CVV2: "<<cvv21<<cvv22<<cvv23<<endl;
}
}
int main()
{
SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE), 11);
system ("title CreditCard Checker by StØrMd[4]rk v1.0 [+] cyber-oxyde.blogspot.mx");
char op;
do
{
system("cls");
check obj;
obj.validacion();
cout<<"Repetir? y/n"<<endl;
cin>>op;
op = tolower(op);
}while(op == 'y');
MessageBox(NULL,TEXT("I hate lammers.\nstormdark-nxt@live.jp"),TEXT("[Info]"),MB_OK | MB_ICONASTERISK );
}
Saludos..
..By StØrMd[4]rk