Написал алгоритм, который шифрует текст методом Цезаря, с помощью таблицы ASCII: Моя программа шифрует строки, в которых используются русские и английские буквы, различные знаки препинания, пробелы и т.д.
public class Chifr2 {
public static void main(String[] args) {
String str = "ннн ААА 000 <> ZZZ yyy"; //вводимый текст
int key = 3;
String new_str = "";
String d = "";
int c = 0;
int y = 0;
System.out.println((int) 'Я'); // здесь узнаем код буквы
for (int j =0;j<str.length();j++) {
int a = str.charAt(j);
if (a <= 1071 && a>=1040) {
c = (str.charAt(j) + key);
y = (c - 1040) % 32 + 1040; // 1040 - это код буквы А, 32 - это кол-во букв
new_str += (char) y; // получаем букву по коду
}
else if (a>1071){
c = (str.charAt(j) + key);
y = (c - 1072) % 32 + 1072; // 1072 - это код буквы а, 32 - это кол-во букв
new_str += (char) y; // получаем букву по коду
}
else if (a>=32 && a<=47){
c = (str.charAt(j)+key);
y = (c - 32) % 16 + 32;
new_str += (char) y;
}
else if (a>47&&a<=57){
c = (str.charAt(j)+key);
y = (c - 47) % 10 + 47;
new_str += (char) y;
}
else if (a>57&&a<=64){
c = (str.charAt(j)+key);
y = (c - 57) % 7 + 57;
new_str += (char) y;
}
else if (a>64&&a<=90){
c = (str.charAt(j)+key);
y = (c - 64) % 26 + 64;
new_str += (char) y;
}
else if(a>=97&&a<=122){
c = (str.charAt(j)+key);
y = (c - 97) % 26 + 97;
new_str += (char) y;
}
}
System.out.println( new_str); // выводимый текст
}
}
Никак не могу понять как мне сделать расшифровку данного шифра (то есть как мне сделать так, чтобы ключ был отрицательным, но шифрование всё равно происходило правильно)
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости