He realizado un pequeño algoritmo de cifrado (es muy simple) sólo como prueba.
Se divide en dos programas, el primero cifra los ficheros y el segundo los descifra.
El cifrado es por sustitución, es decir cambia caracter por caracter en el archivo de texto.
Cambia el caracter desde el valor en codigo ascii, de la siguiente manera.
Uno hacia adelante.
Queda igual.
Uno hacia atrás.
Repite...
Esta es la segunda vez que trabajo con archivos de texto por lo que no sé mucho sobre archivos binarios, así que mejor trabajé de la siguiente manera.
cifrado
Código
#include <iostream> #include <fstream> using namespace std; int main(int argc, char *argv[]) { char cadena[128]; if (argc == 4) { cout << " Sustitucion en proceso... " << endl; ifstream fe(argv[1]); ofstream fs(argv[3]); while(!fe.eof()) { fe >> cadena; for (int i = 0; cadena[i] != '\0'; i++) { cadena[i]++; i+=2; cadena[i]--; } fs << cadena << " "; } fe.close(); fs.close(); cout << " Trabajo de cifrado terminado correctamente " << endl; } else { cout << " Error en parametros. Usa la siguiente estructura " << endl; cout << " cifra Texto.txt en TextoEncriptado.txt " << endl; } return 0; }
descifrado
Código
#include <iostream> #include <fstream> using namespace std; int main(int argc, char *argv[]) { char cadena[128]; if (argc == 4) { cout << " Sustitucion en proceso... " << endl; ifstream fe(argv[1]); ofstream fs(argv[3]); while(!fe.eof()) { fe >> cadena; for (int i = 0; cadena[i] != '\0'; i++) { cadena[i]--; i+=2; cadena[i]++; } fs << cadena << " "; } fe.close(); fs.close(); cout << " Trabajo de descifrado terminado correctamente " << endl; } else { cout << " Error en parametros. Usa la siguiente estructura " << endl; cout << " descifra TextoEncriptado.txt en Texto.txt" << endl; } return 0; }
¿Que les parece? ¿Que cambios le harían ustedes? Gracias