Otro método de encriptado es el simple XOR, aquí dejo un pequeño ejemplo:
Código:
char data[128];
char clave[128];
int pos_clave=0; // Posición en la clave
int longitud_data;
int longitud_clave;
printf("Introduzca los datos a encriptar:\n");
gets(data);
printf("Introduzca la clave:\n");
gets(clave);
longitud_data=strlen(data);
longitud_clave=strlen(clave);
for(int N=0; N<longitud_data; N++) {
data[N]^=clave[pos_clave];
pos_clave++; if(pos_clave==longitud_clave) pos_clave=0;
}
printf("Datos encriptados: \"%s\"\n", data);
printf("Introduzca la clave:\n");
gets(clave);
longitud_clave=strlen(clave);
pos_clave=0;
for(int N=0; N<longitud_data; N++) {
data[N]^=clave[pos_clave];
pos_clave++; if(pos_clave==longitud_clave) pos_clave=0;
}
printf("Datos desencriptados: \"%s\"\n", data);
Hay que tener en cuenta que al encriptar con este método algunos caracteres pueden pasar a ser cero, por lo que al escribirlos en el archivo hay que hacerlo en forma binaria no en texto. ( fopen("Datos.txt","wb"); ).