Zapis i odczyt plików,szyfrowanie

0

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)
  {
  }
0

Zmien ten fragment

      else if(x!=-1&&x<=123&&x%2!=0)x=x+4;
      if(x!=-1) bo.write(x);

na taki

      else if(x!=-1&&x<=123&&x%2!=0)x=x+4;
      System.out.println("i = "+i+ " x = "+x);
      if(x!=-1) bo.write(x);

może wypisany tekst Ci pomoże
pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1