Esta función te puede servir:
Código:
void Crypt(void *Source, int Size, char* Clave, int Mod=0);
Código:
#include "windows.h"
#include <stdlib.h>
// CopyRight escafandra
// Rutina de encriptación Xor.
// La misma rutina encripta y desencripta.
// Clave clave en modo texto que se tratará como de 8 caracteres, 64 bits
// Mod es el módulo restante para encriptaciones parciales
// Si se encripta un buffer por partes, Mod es Size_encriptado%8
// donde Size_encriptado es el tamaño total de lo encriptado hasta ese momento.
// Mod corrige el punto de comienzo del nuevo bloque a encriptar.
void
Crypt(void *Source, int Size, char* Clave, int Mod)
{
BYTE *source = (BYTE*)Source;
BYTE clave[8];
int lClave = strlen(Clave);
for(int n=0; n<8; n++)
clave[n] = Clave[n%lClave];
for(int n=0; n<Size; n++, Mod++){
source[n] ^= clave[Mod%8];
}
}
Saludos.