Ahora estoy intentando hacer lo mismo con un archivo de texto plano y hago esto:
Código PHP:
//---------------------------------------------------------------------------
#include <iostream>
#include <fstream.h>
#include "Vigenere.h"
//---------------------------------------------------------------------------
using namespace std;
int main()
{
ifstream origen;
ofstream salida;
string semilla,cifrada,descifrada;
char *cadena;
semilla = "aguml";
//Parte que encripta el archivo
origen.open("Main.h");
if(origen.good()){
origen.seekg(0,origen.end);
int length = origen.tellg();
origen.seekg(0,origen.beg);
cadena = new char[length+1];
Vigenere *vig = new Vigenere;
salida.open("Encriptado.txt");
if(salida.good()){
origen.read(cadena,length);
cadena[length]='\0';
salida.write(vig->cifrar(cadena, semilla).c_str(),length);
salida.close();
}
delete vig;
delete(cadena);
origen.close();
}
//Parte que desencripta el archivo
origen.open("Encriptado.txt");
if(origen.good()){
origen.seekg(0,origen.end);
int length = origen.tellg();
origen.seekg(0,origen.beg);
cadena = new char[length+1];
Vigenere *vig = new Vigenere;
salida.open("Desencriptado.txt");
if(salida.good()){
origen.read(cadena,length);
cadena[length]='\0';
salida.write(vig->descifrar(cadena, semilla).c_str(),length);
salida.close();
}
delete vig;
delete(cadena);
origen.close();
}
return 0;
}
Tengo dos problemas.
1. El archivo se abre la primera vez pero despues de cerrarlo intento abrirlo una segunda vez y parece que hay algun problema porque no entra en la parte de desencriptar.
2. Me añade basura al final del archivo y eso que pongo el caracter de fin de cadena al final de la cadena.
¿puedes ayudarme?