Te dejo un ejemplo algo mas complejo pero muy simple. No recuerdo si ya publiqué en el foro.
Código:
// 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 no desea usarse,
// debe ser nulo.
// Si se encripta un buffer por partes, Mod = 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.
// BYTE es unsigned char
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];
}
}
Puedes encriptar cualquier cosa.
Saludos.