Saturday, August 4, 2007

Algoritma Enkripsi RC-4 Menggunakan Visual C++

Berikut ini adalah algoritma enkripsi RC-4 dengan bahasa pemrograman Visual C++. Kode ini dapat dimasukkan langsung ke dalam program Anda.

CString removeDuplicates(CString str)

{

int length = strlen(str);

for(int i = 0; i <>

for(int j = i + 1; j<>

{

if(str[i] == str[j])

{

str.SetAt(j, ' ');

}

}

return str;

}

void Crypt(unsigned char *inp, unsigned long panjangdata, CString key)

{

DWORD inplen , keylen;

key=removeDuplicates(key);

keylen=key.GetLength();

char Sbox[2000], Sbox2[2000];

unsigned long i, j, t, x;

static const CString OurUnSecuredKey = "tahir_naeem" ;

static const int OurKeyLen = _tcslen(OurUnSecuredKey);

i = j = t = x = 0;

char temp ,k;

temp ='0';

k ='0';

ZeroMemory(Sbox, sizeof(Sbox));

ZeroMemory(Sbox2, sizeof(Sbox2));

for(i = 0; i <>

{

Sbox[i]=(char)i;

}

j = 0;

if(keylen)

{

for(i = 0; i <>

{

if(j == keylen)

{

j = 0;

}

if( key.GetLength()>(j+1))

Sbox2[i]= key.GetAt(j++);

}

}

else

{

for(i = 0; i <>

{

if(j == OurKeyLen)

{

j = 0;

}

Sbox2[i]= OurUnSecuredKey.GetAt(j++);

}

}

j = 0 ;

for(i = 0; i <>

{

j = (j + (unsigned long) Sbox[i] + (unsigned long) Sbox2[i]) % 256U ;

temp = Sbox[i];

Sbox[i] =Sbox[j];

Sbox[j]= temp;

}

i = j = 0;

for(x = 0; x <>

{

i = (i + 1U) % 256U;

j = (j + (unsigned long) Sbox[i]) % 256U;

temp = Sbox[i];

Sbox[i] =Sbox[j] ;

Sbox[j]= temp;

t = ((unsigned long) Sbox[i] + (unsigned long) Sbox[j]) % 256U ;

k = Sbox[t];

inp[x] = inp[x] ^ k;

}

}

1 comment:

Unknown said...

kk,bisa kasih tau langsung programnya jha ga?
jangan sring nya...


pliss,tolong bantu yua..