vart
Amazing! It worked! Thank you =)
Here's the code in case someone wants it:
Code:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE *fp;
long fSize;
size_t result;
char key[] = "123", *buffer;
fp = fopen ("xor.txt", "rb+");
if (fp == NULL)
{fputs("File error",stderr); exit(1);}
fseek (fp, 0, SEEK_END);
fSize = ftell (fp);
rewind (fp);
buffer = malloc (sizeof(char)*fSize);
if (buffer == NULL)
{fputs ("Memory error",stderr); exit (2);}
result = fread (buffer, 1, fSize, fp);
if (result != fSize)
{fputs ("Reading error",stderr); exit (3);}
XorEncrypt(buffer, key);
rewind (fp);
fwrite (buffer, 1, fSize, fp);
fclose(fp);
free(buffer);
getch();
return 0;
}
int XorEncrypt (char *string, char *key)
{
int i, j, mod;
int StringLen = strlen(string); // 20
int KeyLen = strlen(key); // 6
for (i = 0; i < (StringLen / KeyLen); i++)
{
for (j = 0; j < KeyLen; j++)
{
string[i*KeyLen + j] ^= key[j];
}
}
mod = StringLen % KeyLen;
if (mod != 0)
{
for (i = 0; i < mod; i++)
{
string[StringLen - mod + i] ^= key[i];
}
}
return 0;
}