Untitled
By: a guest | Mar 21st, 2010 | Syntax:
None | Size: 0.91 KB | Hits: 104 | Expires: Never
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *xor_decode ( char *data, char *key )
{
int nr;
int i = 0;
int j = 0;
char *result = NULL;
char *output, *tmp;
result = strtok( data, "," );
output = malloc (200);
bzero(output, 200);
tmp = output;
while( result != NULL )
{
sscanf ( result, "%d", &nr );
*tmp++ = nr^key[i];
if ( key[i] == 0 ) i = 0;
result = strtok( NULL, "," );
i++; j++;
}
return output;
}
int main()
{
char data[] = "28,94,94,63,18,58,102,106,19,62,79,104,58,28,100,13,6,77,76,25,6,2,58,61,57,58,67,106,58,21,105,109,105,64,79,108,62,23,9,16,76,27,11,95,90,57,64,79";
char key[] = "4adc0a861ce3d1928d0198acef46ff4153e0b879034edebfe21e802d5473a6a4b71afb7eca04f6365709cc3b00c9f097";
char * o = xor_decode (data, key);
printf ( "%s\n", o);
free(o);
return 0;
}