Na wstępie zaznaczam, że zdaję sobie sprawę z tego że:
a) są lepsze sposoby na zaszyfrowanie pliku( aczkolwiek ten wystarczy przed wścibską osobą bez wiedzy informatycznej)
b) przedstawiony przeze mnie program "wypluwa" o jeden znak za dużo.
#include <iostream>
#include <fstream>
#include <string>
#include <Windows.h>
using namespace std;
const N = // jakakolwiek liczba pomiędzy 100 a 200
void Decode(std::string iPath )
{
std::ifstream iFile;
std::ofstream oFile;
unsigned char temp;
iFile.open(iPath,ios::binary);
oFile.open("d"+iPath,ios::binary);
while(iFile)
{
temp=iFile.get();
temp=temp^N;
oFile << temp;
}
iFile.close();
oFile.close();
}
int main()
{
string userinput;
while(userinput != "exit")
{
cin>>userinput;
Decode(userinput);
}
system("PAUSE");
return 0;
}
Drugie uruchomienie ( przynajmniej w założeniu) ma odwracać skutki pierwszego (czyli odkodować plik) . Moją "ofiarą" zostało archiwum GG 10* i tu pojawił się problem - po zakodowaniu , odkodowaniu i usunięciu dwóch dodatkowych znaków archiwum nie chce się włączyć ani w czytniku SQLite, ani w okienku GG, ani za pomocą programu Archive.db Tools 1.7.2. Dodam, że po otwarciu w notatniku widać wszystkie moje rozmowy. Niesamowite...
*W Windows 7:
C:\Users[Nazwa profilu]\AppData\Roaming\Gadu-Gadu 10[numer] żeby dojść trzeba włączyć wyświetlanie plików ukrytych