Witam
robię szyfr cezara w javie
moje pytanie jest
1
program szyfr cezar działa dobrze
gdy nacisnę w swoim programie odszyfruj to nie odszyfrowuje mi tylko tekstu, który wpisałem
tylko kolejny raz szyfruje.
gdy ponownie werznę szyfruj to szyfruje tak jak ustawiłem na początku.
gdy werznę odszyfruj to szyfruje mi program do drugiego naciśnięcia przycisku odszyfruj (który zakodował mi kolejny raz)

2
jak szyfr cezar utrudnić odczytanie

3
nie wyświetla mi ostatnie znaki z ascii do mojego wyboru

4
kod szyfr cezara był modyfikowany prze ze mnie znaleziony na portalach internetowych

 
 public void ustawTytul() {
 String title = "Szyfr";
 if (klucz==-1) {
 title+="nie ustawiono)";
 } else {
 char kl = (char)(klucz+32);
 title+=kl+")";
 }
 this.setTitle(title);
 }
...
 ustKlucz() {
 for (int i=0; i<255; i++) {
 char zn =(char) (i+32);
 cb.addItem(zn);
 alfabet+=zn;
 }
 if (klucz!=-1) cb.setSelectedIndex(klucz);
 org.setText(alfabet);        //wyświetla testarea znaki ascii
 zaszyfr.setText(szyfruj(alfabet,cb.getSelectedIndex()));    //wyświetla testarea po wybraniu przesunięcia 

 ustaw.addActionListener(this);
 cb.addActionListener(this);




...


public String szyfruj(String org, int klucz) {
      
     String wynik="";

 int ascii;
 for (int i=0; i<org.length(); i++) 
 {
 ascii= (int) org.charAt(i);
 if (ascii>=32 && ascii<=255)
 { // duze litery
 int intZn=(int) (org.charAt(i)-32);
 int kl = klucz+1;
  wynik += (char)( (intZn + kl) % 224 + 32);
 
 }
 else
     wynik += org.charAt(i); // inne znaki
 }

 return wynik;

///////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////
...
  public String odszyfruj(String zaszyfr, int klucz) {
  
 
 String wynik="";

 int ascii;
 for (int i=0; i<zaszyfr.length(); i++) {
 ascii= (int) zaszyfr.charAt(i);
 if (ascii>=32 && ascii<=255) 
 { // duze litery
 int intZn=(int) (zaszyfr.charAt(i)-32);
 int kl = klucz+1;
  wynik += (char)( (intZn - kl+26) % 224 + 32);
} 
else 
     wynik += zaszyfr.charAt(i); // inne znaki
 }
 return wynik;
}

dziękuje za odpowiedz