Ограничение символов ASCII в шифре цезаря

Пишу шифр цезаря на Java с использованием ASCII таблицы. В целом всё работает, однако когда я пошёл к дешифровке шифра, я,хотел перебрать все варианты, и всё бы ничего но получается следующее: Вывод программы Я думал что я не правильно использовал алгоритм шифра Цезаря: (x-key)mod26 где x это буква для шифра key - число на сколько сдвигается алфавит и 26 потому что пишу для английского алфавита, следовательно 26 букв.

Там видно что первые 3 подбора ещё можно понять но после код начинает перебирать всю таблицу. Вопрос, как я могу ограничить символы, чтобы код искал только в промежутке определенных символов, то есть в десятичной системе 65-90 для больших и 97-122 для маленьких букв соответственно.

Код который декодирует шифр:

        String decrypted ="";

        int keybrute =0;

        for(int brute = 0; brute <= 26;brute++){

        for(int i = 0; i < detext.length(); i++){
        boolean isupper = Character.isUpperCase(detext.charAt(i));
        boolean islower = Character.isLowerCase(detext.charAt(i));

        if(isupper == true) {      
        char a = (char)(((int)detext.charAt(i)-keybrute-65)%26+65); 

        decrypted += a; 
        }

        if(islower == true){
        char a = (char)((((int)detext.charAt(i))-keybrute-97)%26+97);  
        decrypted += a;  
        }

        if(islower == false && isupper == false){
        char a = detext.charAt(i);
        decrypted += a;
        continue;


        }
       System.out.println("Current key:" + keybrute+ " and current text:" + decrypted);



      keybrute++;
      decrypted="";

        }
     System.out.println("Please , choose most comfortable option of key. Thanks");


        }

Ответы (0 шт):