Witam,
Piszę program do szyfrowania plików na zaliczenie i nie potrafię poradzić sobie z jedną rzeczą. Szyfrowanie wykonuje zmieniając bajty i wszystko śmiga pięknie tylko dla plików tekstowych :/. Dla jakiegokolwiek innego pliku zapisuje tylko pierwszy bajt zaszyfrowanego pliku. I nie mam pojęcia dlaczego.
To jest kod szyfrowania
try
{
FileInputStream fi = new
FileInputStream(fileName);
BufferedInputStream bi = new
BufferedInputStream(fi);
FileOutputStream fo = new
FileOutputStream(fileName1);
BufferedOutputStream bo = new
BufferedOutputStream(fo);
int x;
boolean eof = false;
int i=0;
while (!eof)
{
x = bi.read();
if (((x==32)||(x==10))==false)
if(x!=-1&&x<-122&&x%2==0) x=x+250;
else if(x!=-1&&x>=-122&&x%2==0)x=x-6;
if(x!=-1&&x>123&&x%2!=0) x=x-252;
else if(x!=-1&&x<=123&&x%2!=0)x=x+4;
if(x!=-1) bo.write(x);
if (x==-1) eof=true;
else i++;
}
bi.close();
bo.close();
}
catch (IOException e)
{
}
Tutaj deszyfrowanie
try
{
FileInputStream fi = new
FileInputStream(fileName);
BufferedInputStream bi = new
BufferedInputStream(fi);
FileOutputStream fo = new
FileOutputStream(fileName1);
BufferedOutputStream bo = new
BufferedOutputStream(fo);
int x;
boolean eof = false;
int i=0;
while (!eof)
{
x = bi.read();
if (((x==32)||(x==10))==false)
if(x!=-1&&x>121&&x%2==0) x=x-250;
else if(x!=-1&&x<=121&&x%2==0)x=x+6;
if(x!=-1&&x<-124&&x%2!=0) x=x+252;
else if(x!=-1&&x>=-124&&x%2!=0)x=x-4;
if(x!=-1) bo.write(x);
if (x==-1) eof=true;
else i++;
}
bi.close();
bo.close();
}
catch (IOException e)
{
}