From 7c28d2589c0670811f2c4af616caa55fbe020f56 Mon Sep 17 00:00:00 2001 From: Anastasia Baeramshina Date: Sun, 24 Aug 2025 21:20:46 +0500 Subject: [PATCH 01/25] ADD Start program --- src/main/java/com/javarush/baeramshina/ConsoleRunner.java | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/main/java/com/javarush/baeramshina/ConsoleRunner.java diff --git a/src/main/java/com/javarush/baeramshina/ConsoleRunner.java b/src/main/java/com/javarush/baeramshina/ConsoleRunner.java new file mode 100644 index 0000000..75dec89 --- /dev/null +++ b/src/main/java/com/javarush/baeramshina/ConsoleRunner.java @@ -0,0 +1,7 @@ +package com.javarush.baeramshina; + +public class ConsoleRunner { + public static void main(String[] args) { + + } +} From 4835e7eb26bcf01fec6083ed969731147b1dfa32 Mon Sep 17 00:00:00 2001 From: Anastasia Baeramshina Date: Sun, 31 Aug 2025 22:34:11 +0500 Subject: [PATCH 02/25] ADD Symbols --- .../javarush/baeramshina/ConsoleRunner.java | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/main/java/com/javarush/baeramshina/ConsoleRunner.java b/src/main/java/com/javarush/baeramshina/ConsoleRunner.java index 75dec89..679573c 100644 --- a/src/main/java/com/javarush/baeramshina/ConsoleRunner.java +++ b/src/main/java/com/javarush/baeramshina/ConsoleRunner.java @@ -1,7 +1,42 @@ package com.javarush.baeramshina; +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.util.Scanner; + public class ConsoleRunner { public static void main(String[] args) { + Symbols.printAlphabet(); + + } + + + public class Symbols { + private static final char[] ALPHABET = new char[]{'а', 'б', 'в', 'г', 'д', 'е', 'ж', 'з', + 'и', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', + 'ъ', 'ы', 'ь', 'э', 'я', '.', ',', '«', '»', '"', '\'', ':', '!', '?', ' '}; + + public static void printAlphabet() { + for (char c : ALPHABET) { + System.out.print(c + " "); + } + System.out.println(); + } + } + + + private static void readFile() { + String input = "C:\\Users\\Microsoft\\IdeaProjects\\CryptoAnalyzerPantera\\text\\dict.txt"; + try (BufferedReader reader = new BufferedReader(new FileReader(input))) { + String line; + while ((line = reader.readLine()) != null) { + System.out.println(line); + } + } catch (IOException e) { + System.out.println("Ошибка при чтении файла!!!"); + e.getMessage(); + } } } From 9948b0307ae06d6b1b687c72ca10adcdd2888c00 Mon Sep 17 00:00:00 2001 From: Anastasia Baeramshina Date: Mon, 1 Sep 2025 00:11:24 +0500 Subject: [PATCH 03/25] LogicEncrypted --- .../javarush/baeramshina/ConsoleRunner.java | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/javarush/baeramshina/ConsoleRunner.java b/src/main/java/com/javarush/baeramshina/ConsoleRunner.java index 679573c..3629cc6 100644 --- a/src/main/java/com/javarush/baeramshina/ConsoleRunner.java +++ b/src/main/java/com/javarush/baeramshina/ConsoleRunner.java @@ -3,17 +3,39 @@ import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; +import java.util.HashMap; +import java.util.Map; import java.util.Scanner; public class ConsoleRunner { public static void main(String[] args) { +readFile(); - Symbols.printAlphabet(); +// readFile(); + } + public static class LogicEncrypted{ + public static Map createCaesarCipher(int shift){ + Map map = new HashMap<>(); + int length=Symbols.ALPHABET.length; + + for (int i = 0; i Date: Tue, 2 Sep 2025 23:43:27 +0500 Subject: [PATCH 04/25] ADD changes --- .../javarush/baeramshina/ConsoleRunner.java | 65 ++++++++++++------- 1 file changed, 42 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/javarush/baeramshina/ConsoleRunner.java b/src/main/java/com/javarush/baeramshina/ConsoleRunner.java index 3629cc6..12f5dae 100644 --- a/src/main/java/com/javarush/baeramshina/ConsoleRunner.java +++ b/src/main/java/com/javarush/baeramshina/ConsoleRunner.java @@ -5,43 +5,59 @@ import java.io.IOException; import java.util.HashMap; import java.util.Map; -import java.util.Scanner; public class ConsoleRunner { public static void main(String[] args) { -readFile(); + String infoFile = readFile(); -// readFile(); - } - public static class LogicEncrypted{ - public static Map createCaesarCipher(int shift){ - Map map = new HashMap<>(); - int length=Symbols.ALPHABET.length; + Map caesarCipher = LogicEncrypted.createCaesarCipher(5); - for (int i = 0; i cipherMap) { + StringBuilder result = new StringBuilder(); + for (char c : text.toCharArray()) { + char lowerChar = Character.toLowerCase(c); + char encryptedChar = cipherMap.getOrDefault(lowerChar, c); + result.append(encryptedChar); } + return result.toString(); } + public static class LogicEncrypted { + public static Map createCaesarCipher(int shift) { + Map map = new HashMap<>(); + int length = Symbols.symbols.length; + + for (int i = 0; i < length; i++) { + char original = Symbols.symbols[i]; + int shiftIndex = (i + shift) % length; + if (shiftIndex < 0) { + shiftIndex += length; + } + char encrypt = Symbols.symbols[shiftIndex]; + map.put(original, encrypt); + System.out.println(original + " ------>" + encrypt); + } + return map; + } + } public static class Symbols { - private static final char[] ALPHABET = new char[]{'а', 'б', 'в', 'г', 'д', 'е', 'ж', 'з', + private static final char[] symbols = new char[]{'а', 'б', 'в', 'г', 'д', 'е', 'ж', 'з', 'и', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'я', '.', ',', '«', '»', '"', '\'', ':', '!', '?', ' '}; - public static void printAlphabet() { - for (char c : ALPHABET) { + public static void printSymbols() { + for (char c : symbols) { System.out.print(c + " "); } System.out.println(); @@ -49,19 +65,22 @@ public static void printAlphabet() { } - - - - private static void readFile() { - String input = "C:\\Users\\Microsoft\\IdeaProjects\\CryptoAnalyzerPantera\\text\\dict.txt"; + private static String readFile() { + String input = "text/dict.txt"; + StringBuilder info = new StringBuilder(); try (BufferedReader reader = new BufferedReader(new FileReader(input))) { + String line; while ((line = reader.readLine()) != null) { + info.append(line).append("\n"); + System.out.println(line); } } catch (IOException e) { System.out.println("Ошибка при чтении файла!!!"); - e.getMessage(); + + e.printStackTrace(); } + return info.toString().trim(); } } From 625bc3fb99d25d526c5d972b4177dcbb509215be Mon Sep 17 00:00:00 2001 From: Anastasia Baeramshina Date: Wed, 3 Sep 2025 21:57:06 +0500 Subject: [PATCH 05/25] ADD class Encrypt --- .../java/com/javarush/baeramshina/Encrypt.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/main/java/com/javarush/baeramshina/Encrypt.java diff --git a/src/main/java/com/javarush/baeramshina/Encrypt.java b/src/main/java/com/javarush/baeramshina/Encrypt.java new file mode 100644 index 0000000..1b4dfc3 --- /dev/null +++ b/src/main/java/com/javarush/baeramshina/Encrypt.java @@ -0,0 +1,16 @@ +package com.javarush.baeramshina; + +import java.util.Map; + +public class Encrypt { + public static String encryptText(String text, Map cipherMap) { + StringBuilder result = new StringBuilder(); + for (char c : text.toCharArray()) { + char lowerChar = Character.toLowerCase(c); + char encryptedChar = cipherMap.getOrDefault(lowerChar, c); + result.append(encryptedChar); + } + return result.toString(); + + } +} From 130b2c3f078177e2c4a1fe3efa2a305f143d9188 Mon Sep 17 00:00:00 2001 From: Anastasia Baeramshina Date: Wed, 3 Sep 2025 23:37:52 +0500 Subject: [PATCH 06/25] ADD class Read File --- .../com/javarush/baeramshina/ReadFile.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/main/java/com/javarush/baeramshina/ReadFile.java diff --git a/src/main/java/com/javarush/baeramshina/ReadFile.java b/src/main/java/com/javarush/baeramshina/ReadFile.java new file mode 100644 index 0000000..2f63eec --- /dev/null +++ b/src/main/java/com/javarush/baeramshina/ReadFile.java @@ -0,0 +1,26 @@ +package com.javarush.baeramshina; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; + +public class ReadFile { + public static String readFile() { + String input = "text/encrypted.txt"; + StringBuilder info = new StringBuilder(); + try (BufferedReader reader = new BufferedReader(new FileReader(input))) { + + String line; + while ((line = reader.readLine()) != null) { + info.append(line).append("\n"); + + System.out.println(line); + } + } catch (IOException e) { + System.out.println("Ошибка при чтении файла!!!"); + + e.printStackTrace(); + } + return info.toString().trim(); +} +} From 2230adde84513db83f45185724a986822bc2734b Mon Sep 17 00:00:00 2001 From: Anastasia Baeramshina Date: Wed, 3 Sep 2025 23:42:27 +0500 Subject: [PATCH 07/25] ADD class Symbols --- .../java/com/javarush/baeramshina/Symbols.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 src/main/java/com/javarush/baeramshina/Symbols.java diff --git a/src/main/java/com/javarush/baeramshina/Symbols.java b/src/main/java/com/javarush/baeramshina/Symbols.java new file mode 100644 index 0000000..c7c5717 --- /dev/null +++ b/src/main/java/com/javarush/baeramshina/Symbols.java @@ -0,0 +1,15 @@ +package com.javarush.baeramshina; + +public class Symbols { + protected static final char[] symbols = new char[]{'а', 'б', 'в', 'г', 'д', 'е', 'ж', 'з', + 'и', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', + 'ъ', 'ы', 'ь', 'э', 'я', '.', ',', '«', '»', '"', '\'', ':', '!', '?', ' ', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'}; + + public static void printSymbols() { + for (char c : symbols) { + System.out.print(c + " "); + } + System.out.println(); + } +} + From 5f374fb009368dcf1350bab3edab6e1942d5cb96 Mon Sep 17 00:00:00 2001 From: Anastasia Baeramshina Date: Thu, 4 Sep 2025 23:06:46 +0500 Subject: [PATCH 08/25] ADD class Logic Decrypted --- .../javarush/baeramshina/LogicDecrypted.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/main/java/com/javarush/baeramshina/LogicDecrypted.java diff --git a/src/main/java/com/javarush/baeramshina/LogicDecrypted.java b/src/main/java/com/javarush/baeramshina/LogicDecrypted.java new file mode 100644 index 0000000..4805dd0 --- /dev/null +++ b/src/main/java/com/javarush/baeramshina/LogicDecrypted.java @@ -0,0 +1,25 @@ +package com.javarush.baeramshina; + +import java.util.HashMap; +import java.util.Map; + +public class LogicDecrypted { + public static Map cancelsCaesarCipher(int shift) { + Map map = new HashMap<>(); + int length = Symbols.symbols.length; + + for (int i = 0; i < length; i++) { + char original = Symbols.symbols[i]; + int shiftIndex = (i - shift + length) % length; + + char decrypt = Symbols.symbols[shiftIndex]; + map.put(original, decrypt); + + + } + + return map; + } + + +} From dc39135ab3305f19289ae49f16ea840d24a4d044 Mon Sep 17 00:00:00 2001 From: Anastasia Baeramshina Date: Thu, 4 Sep 2025 23:08:19 +0500 Subject: [PATCH 09/25] ADD class Logic Encrypted --- .../javarush/baeramshina/LogicEncrypted.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/main/java/com/javarush/baeramshina/LogicEncrypted.java diff --git a/src/main/java/com/javarush/baeramshina/LogicEncrypted.java b/src/main/java/com/javarush/baeramshina/LogicEncrypted.java new file mode 100644 index 0000000..d043e5c --- /dev/null +++ b/src/main/java/com/javarush/baeramshina/LogicEncrypted.java @@ -0,0 +1,27 @@ +package com.javarush.baeramshina; + +import java.util.HashMap; +import java.util.Map; + +public class LogicEncrypted { + public static Map createCaesarCipher(int shift) { + Map map = new HashMap<>(); + int length = Symbols.symbols.length; + + for (int i = 0; i < length; i++) { + char original = Symbols.symbols[i]; + int shiftIndex = (i + shift) % length; + if (shiftIndex < 0) { + shiftIndex += length; + } + char encrypt = Symbols.symbols[shiftIndex]; + map.put(original, encrypt); + + + } + + return map; + } + +} + From 5fcd29416c6e161d4eacce46c79fb157429862c1 Mon Sep 17 00:00:00 2001 From: Anastasia Baeramshina Date: Thu, 4 Sep 2025 23:09:57 +0500 Subject: [PATCH 10/25] ADD class Decrypt --- .../com/javarush/baeramshina/Decrypt.java | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/main/java/com/javarush/baeramshina/Decrypt.java diff --git a/src/main/java/com/javarush/baeramshina/Decrypt.java b/src/main/java/com/javarush/baeramshina/Decrypt.java new file mode 100644 index 0000000..b5ff5b6 --- /dev/null +++ b/src/main/java/com/javarush/baeramshina/Decrypt.java @@ -0,0 +1,38 @@ +package com.javarush.baeramshina; + +import java.util.Map; + +public class Decrypt { + public static String decryptText(String text,Map cipherMap) { + StringBuilder result = new StringBuilder(); + for (char c : text.toCharArray()) { + if (cipherMap.containsKey(c)) { + result.append(cipherMap.get(c)); + } else { + result.append(c); + } + } + return result.toString(); + } +} + + + + + + +// StringBuilder result = new StringBuilder(); +// for (char c : encryptText.toCharArray()) { +// char lowerChar = Character.toLowerCase(c); +// +// char decryptedChar = otherCipherMap.getOrDefault(lowerChar, c); +// if (Character.isUpperCase(c)) { +// decryptedChar = Character.toUpperCase(decryptedChar); +// } +// result.append(decryptedChar); +// } +// return result.toString(); + + +// } +//} From eccc76138724d0b77d1542abac2639d442955096 Mon Sep 17 00:00:00 2001 From: Anastasia Baeramshina Date: Thu, 4 Sep 2025 23:11:24 +0500 Subject: [PATCH 11/25] ADD logical changes --- .../com/javarush/baeramshina/Encrypt.java | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/javarush/baeramshina/Encrypt.java b/src/main/java/com/javarush/baeramshina/Encrypt.java index 1b4dfc3..c01bf4c 100644 --- a/src/main/java/com/javarush/baeramshina/Encrypt.java +++ b/src/main/java/com/javarush/baeramshina/Encrypt.java @@ -6,11 +6,25 @@ public class Encrypt { public static String encryptText(String text, Map cipherMap) { StringBuilder result = new StringBuilder(); for (char c : text.toCharArray()) { - char lowerChar = Character.toLowerCase(c); - char encryptedChar = cipherMap.getOrDefault(lowerChar, c); - result.append(encryptedChar); + if (cipherMap.containsKey(c)) { + result.append(cipherMap.get(c)); + } else { + result.append(c); + } } return result.toString(); - } } + + +// char lowerChar = Character.toLowerCase(c); +// char encryptedChar = cipherMap.getOrDefault(lowerChar, c); +// if (Character.isUpperCase(c)) { +// encryptedChar = Character.toUpperCase(encryptedChar); +// } +// result.append(encryptedChar); +// } +// return result.toString(); + +//} +// } From 413feb3be52635e4ad282dde9bf8f223d9f55613 Mon Sep 17 00:00:00 2001 From: Anastasia Baeramshina Date: Thu, 4 Sep 2025 23:12:42 +0500 Subject: [PATCH 12/25] DEL Encr one of the options --- src/main/java/com/javarush/baeramshina/Encrypt.java | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/main/java/com/javarush/baeramshina/Encrypt.java b/src/main/java/com/javarush/baeramshina/Encrypt.java index c01bf4c..f8a982d 100644 --- a/src/main/java/com/javarush/baeramshina/Encrypt.java +++ b/src/main/java/com/javarush/baeramshina/Encrypt.java @@ -17,14 +17,4 @@ public static String encryptText(String text, Map cipherMa } -// char lowerChar = Character.toLowerCase(c); -// char encryptedChar = cipherMap.getOrDefault(lowerChar, c); -// if (Character.isUpperCase(c)) { -// encryptedChar = Character.toUpperCase(encryptedChar); -// } -// result.append(encryptedChar); -// } -// return result.toString(); -//} -// } From 5a19a6b041d68442f9e6b1be641a251b7a78a1a5 Mon Sep 17 00:00:00 2001 From: Anastasia Baeramshina Date: Thu, 4 Sep 2025 23:15:19 +0500 Subject: [PATCH 13/25] CHANGED symbols --- src/main/java/com/javarush/baeramshina/Symbols.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/com/javarush/baeramshina/Symbols.java b/src/main/java/com/javarush/baeramshina/Symbols.java index c7c5717..aa9a2bf 100644 --- a/src/main/java/com/javarush/baeramshina/Symbols.java +++ b/src/main/java/com/javarush/baeramshina/Symbols.java @@ -1,9 +1,7 @@ package com.javarush.baeramshina; public class Symbols { - protected static final char[] symbols = new char[]{'а', 'б', 'в', 'г', 'д', 'е', 'ж', 'з', - 'и', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', - 'ъ', 'ы', 'ь', 'э', 'я', '.', ',', '«', '»', '"', '\'', ':', '!', '?', ' ', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'}; + public static final char[] symbols = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя.,' '«»:!?1234567890".toCharArray(); public static void printSymbols() { for (char c : symbols) { From dc8eebc5e35c990b867729065c052e868277d376 Mon Sep 17 00:00:00 2001 From: Anastasia Baeramshina Date: Thu, 4 Sep 2025 23:18:53 +0500 Subject: [PATCH 14/25] DEL Decr one of the options --- .../java/com/javarush/baeramshina/Decrypt.java | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/src/main/java/com/javarush/baeramshina/Decrypt.java b/src/main/java/com/javarush/baeramshina/Decrypt.java index b5ff5b6..119912d 100644 --- a/src/main/java/com/javarush/baeramshina/Decrypt.java +++ b/src/main/java/com/javarush/baeramshina/Decrypt.java @@ -3,7 +3,7 @@ import java.util.Map; public class Decrypt { - public static String decryptText(String text,Map cipherMap) { + public static String decryptText(String text, Map cipherMap) { StringBuilder result = new StringBuilder(); for (char c : text.toCharArray()) { if (cipherMap.containsKey(c)) { @@ -21,18 +21,4 @@ public static String decryptText(String text,Map cipherMap -// StringBuilder result = new StringBuilder(); -// for (char c : encryptText.toCharArray()) { -// char lowerChar = Character.toLowerCase(c); -// -// char decryptedChar = otherCipherMap.getOrDefault(lowerChar, c); -// if (Character.isUpperCase(c)) { -// decryptedChar = Character.toUpperCase(decryptedChar); -// } -// result.append(decryptedChar); -// } -// return result.toString(); - -// } -//} From 9f50f26293f2801d66c880e88e50686415298f41 Mon Sep 17 00:00:00 2001 From: Anastasia Baeramshina Date: Thu, 4 Sep 2025 23:20:55 +0500 Subject: [PATCH 15/25] CHANG "text/dict.txt" --- src/main/java/com/javarush/baeramshina/ReadFile.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/javarush/baeramshina/ReadFile.java b/src/main/java/com/javarush/baeramshina/ReadFile.java index 2f63eec..1e3266d 100644 --- a/src/main/java/com/javarush/baeramshina/ReadFile.java +++ b/src/main/java/com/javarush/baeramshina/ReadFile.java @@ -6,7 +6,7 @@ public class ReadFile { public static String readFile() { - String input = "text/encrypted.txt"; + String input = "text/dict.txt"; StringBuilder info = new StringBuilder(); try (BufferedReader reader = new BufferedReader(new FileReader(input))) { From 7f53a90c6bb3513cf44733425ab374a0b3f0283d Mon Sep 17 00:00:00 2001 From: Anastasia Baeramshina Date: Fri, 5 Sep 2025 00:05:19 +0500 Subject: [PATCH 16/25] CHANG ConsoleRunner --- .../javarush/baeramshina/ConsoleRunner.java | 88 +++++-------------- 1 file changed, 21 insertions(+), 67 deletions(-) diff --git a/src/main/java/com/javarush/baeramshina/ConsoleRunner.java b/src/main/java/com/javarush/baeramshina/ConsoleRunner.java index 12f5dae..ca915a6 100644 --- a/src/main/java/com/javarush/baeramshina/ConsoleRunner.java +++ b/src/main/java/com/javarush/baeramshina/ConsoleRunner.java @@ -1,86 +1,40 @@ package com.javarush.baeramshina; -import java.io.BufferedReader; -import java.io.FileReader; -import java.io.IOException; -import java.util.HashMap; import java.util.Map; +import java.util.Scanner; -public class ConsoleRunner { - public static void main(String[] args) { - String infoFile = readFile(); +import static com.javarush.baeramshina.Decrypt.decryptText; +import static com.javarush.baeramshina.Encrypt.encryptText; - Map caesarCipher = LogicEncrypted.createCaesarCipher(5); - - String encrypted = encryptText(infoFile, caesarCipher); - System.out.println("Зашифрованный текст " + encrypted); - } +public class ConsoleRunner { + public static void main(String[] args) { + Scanner console = new Scanner(System.in); - private static String encryptText(String text, Map cipherMap) { - StringBuilder result = new StringBuilder(); - for (char c : text.toCharArray()) { - char lowerChar = Character.toLowerCase(c); - char encryptedChar = cipherMap.getOrDefault(lowerChar, c); - result.append(encryptedChar); - } - return result.toString(); + ReadFile readFile = new ReadFile("text/dict.txt"); + String originalFile = readFile.readInput(); + System.out.println("Оригинал "+originalFile); - } + ConsoleReader consoleReader = new ConsoleReader(console); + String readInput = consoleReader.readInput(); - public static class LogicEncrypted { - public static Map createCaesarCipher(int shift) { - Map map = new HashMap<>(); - int length = Symbols.symbols.length; +// String input = console.nextLine(); +// String originalFile = readFile(); +// System.out.println("Original" + originalFile); - for (int i = 0; i < length; i++) { - char original = Symbols.symbols[i]; - int shiftIndex = (i + shift) % length; - if (shiftIndex < 0) { - shiftIndex += length; - } - char encrypt = Symbols.symbols[shiftIndex]; - map.put(original, encrypt); - System.out.println(original + " ------>" + encrypt); - } - return map; - } - - } + Map caesarCipher = LogicEncrypted.createCaesarCipher(3); + String encrypted = encryptText(originalFile, caesarCipher); + System.out.println("Зашифрованный текст " + encrypted); - public static class Symbols { - private static final char[] symbols = new char[]{'а', 'б', 'в', 'г', 'д', 'е', 'ж', 'з', - 'и', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', - 'ъ', 'ы', 'ь', 'э', 'я', '.', ',', '«', '»', '"', '\'', ':', '!', '?', ' '}; + Map deCipher = LogicDecrypted.cancelsCaesarCipher(3); + String decrypted = decryptText(encrypted, deCipher); + System.out.println("Расшифрованный текст " + decrypted); +console.close(); - public static void printSymbols() { - for (char c : symbols) { - System.out.print(c + " "); - } - System.out.println(); - } } - private static String readFile() { - String input = "text/dict.txt"; - StringBuilder info = new StringBuilder(); - try (BufferedReader reader = new BufferedReader(new FileReader(input))) { - - String line; - while ((line = reader.readLine()) != null) { - info.append(line).append("\n"); - - System.out.println(line); - } - } catch (IOException e) { - System.out.println("Ошибка при чтении файла!!!"); - - e.printStackTrace(); - } - return info.toString().trim(); - } } From f3ff7bb057331187392e67c7e756768503278852 Mon Sep 17 00:00:00 2001 From: Anastasia Baeramshina Date: Fri, 5 Sep 2025 00:05:46 +0500 Subject: [PATCH 17/25] ADD ConsoleReader --- .../com/javarush/baeramshina/ConsoleReader.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/main/java/com/javarush/baeramshina/ConsoleReader.java diff --git a/src/main/java/com/javarush/baeramshina/ConsoleReader.java b/src/main/java/com/javarush/baeramshina/ConsoleReader.java new file mode 100644 index 0000000..70f08ec --- /dev/null +++ b/src/main/java/com/javarush/baeramshina/ConsoleReader.java @@ -0,0 +1,17 @@ +package com.javarush.baeramshina; + +import java.util.Scanner; + +public class ConsoleReader extends InputReader { + private final Scanner console; + + public ConsoleReader(Scanner console){ + this.console=console; + } + + @Override + public String readInput() { + System.out.println("Введите текст: "); + return console.nextLine(); + } +} From 15edb63def465f4b7771a923ca5d71769b931939 Mon Sep 17 00:00:00 2001 From: Anastasia Baeramshina Date: Fri, 5 Sep 2025 00:06:38 +0500 Subject: [PATCH 18/25] ADD InputReader --- src/main/java/com/javarush/baeramshina/InputReader.java | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 src/main/java/com/javarush/baeramshina/InputReader.java diff --git a/src/main/java/com/javarush/baeramshina/InputReader.java b/src/main/java/com/javarush/baeramshina/InputReader.java new file mode 100644 index 0000000..ead1a71 --- /dev/null +++ b/src/main/java/com/javarush/baeramshina/InputReader.java @@ -0,0 +1,5 @@ +package com.javarush.baeramshina; + +public abstract class InputReader { + public abstract String readInput(); +} From 864e8674d935517b151e760c50f8db4b6d92f3b6 Mon Sep 17 00:00:00 2001 From: Anastasia Baeramshina Date: Fri, 5 Sep 2025 00:06:56 +0500 Subject: [PATCH 19/25] CHANG ReadFile --- .../com/javarush/baeramshina/ReadFile.java | 39 ++++++++++++------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/javarush/baeramshina/ReadFile.java b/src/main/java/com/javarush/baeramshina/ReadFile.java index 1e3266d..3507bc2 100644 --- a/src/main/java/com/javarush/baeramshina/ReadFile.java +++ b/src/main/java/com/javarush/baeramshina/ReadFile.java @@ -1,26 +1,35 @@ package com.javarush.baeramshina; import java.io.BufferedReader; + import java.io.FileReader; import java.io.IOException; -public class ReadFile { - public static String readFile() { - String input = "text/dict.txt"; - StringBuilder info = new StringBuilder(); - try (BufferedReader reader = new BufferedReader(new FileReader(input))) { +public class ReadFile extends InputReader { + private final String filePath; + + public ReadFile(String filePath) { + this.filePath = filePath; + } - String line; - while ((line = reader.readLine()) != null) { - info.append(line).append("\n"); + @Override + public String readInput() { +// String input = "text/dict.txt"; + StringBuilder info = new StringBuilder(); + try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) { + String line; + while((line =reader.readLine())!=null) - System.out.println(line); - } - } catch (IOException e) { - System.out.println("Ошибка при чтении файла!!!"); + { + info.append(line).append("\n"); - e.printStackTrace(); + System.out.println(line); + } + } catch(IOException e) { + System.out.println("Ошибка при чтении файла!!!"); + + e.printStackTrace(); + } + return info.toString().trim(); } - return info.toString().trim(); -} } From 02850e48cc148a92a24d096ed250eaea953bf421 Mon Sep 17 00:00:00 2001 From: Anastasia Baeramshina Date: Fri, 5 Sep 2025 00:08:41 +0500 Subject: [PATCH 20/25] DEL CR one of the options --- src/main/java/com/javarush/baeramshina/ConsoleRunner.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/main/java/com/javarush/baeramshina/ConsoleRunner.java b/src/main/java/com/javarush/baeramshina/ConsoleRunner.java index ca915a6..bb29017 100644 --- a/src/main/java/com/javarush/baeramshina/ConsoleRunner.java +++ b/src/main/java/com/javarush/baeramshina/ConsoleRunner.java @@ -18,11 +18,6 @@ public static void main(String[] args) { ConsoleReader consoleReader = new ConsoleReader(console); String readInput = consoleReader.readInput(); -// String input = console.nextLine(); -// String originalFile = readFile(); -// System.out.println("Original" + originalFile); - - Map caesarCipher = LogicEncrypted.createCaesarCipher(3); String encrypted = encryptText(originalFile, caesarCipher); From b9ceb69b1f56021ea860d6b50d52c3a80558e7e7 Mon Sep 17 00:00:00 2001 From: Anastasia Baeramshina Date: Fri, 5 Sep 2025 21:47:14 +0500 Subject: [PATCH 21/25] ADD class WriteFile --- .../com/javarush/baeramshina/WriteFile.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/main/java/com/javarush/baeramshina/WriteFile.java diff --git a/src/main/java/com/javarush/baeramshina/WriteFile.java b/src/main/java/com/javarush/baeramshina/WriteFile.java new file mode 100644 index 0000000..04a67e6 --- /dev/null +++ b/src/main/java/com/javarush/baeramshina/WriteFile.java @@ -0,0 +1,17 @@ +package com.javarush.baeramshina; + +import java.io.BufferedWriter; +import java.io.FileWriter; +import java.io.IOException; + +public class WriteFile { + public static void writeToFile(String text, String filePath){ + try (BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(filePath))){ + bufferedWriter.write(text); + System.out.println("Текст успешно записан: "+filePath); + } + catch (IOException e){ + System.out.println("Ошибка при записи файла"); + } + } +} From beeb5b43f3eaa03438ce4d077aa5cc099f5bddd4 Mon Sep 17 00:00:00 2001 From: Anastasia Baeramshina Date: Fri, 5 Sep 2025 21:48:18 +0500 Subject: [PATCH 22/25] DEL line in ReadFile --- src/main/java/com/javarush/baeramshina/ReadFile.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/javarush/baeramshina/ReadFile.java b/src/main/java/com/javarush/baeramshina/ReadFile.java index 3507bc2..9777821 100644 --- a/src/main/java/com/javarush/baeramshina/ReadFile.java +++ b/src/main/java/com/javarush/baeramshina/ReadFile.java @@ -14,7 +14,7 @@ public ReadFile(String filePath) { @Override public String readInput() { -// String input = "text/dict.txt"; + StringBuilder info = new StringBuilder(); try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) { String line; From 30fb83f0df3e8bda5bae2f3f1f9a6af40e8f837c Mon Sep 17 00:00:00 2001 From: Anastasia Baeramshina Date: Fri, 5 Sep 2025 21:49:44 +0500 Subject: [PATCH 23/25] ADD method write file --- .../java/com/javarush/baeramshina/ConsoleRunner.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/javarush/baeramshina/ConsoleRunner.java b/src/main/java/com/javarush/baeramshina/ConsoleRunner.java index bb29017..4d2acba 100644 --- a/src/main/java/com/javarush/baeramshina/ConsoleRunner.java +++ b/src/main/java/com/javarush/baeramshina/ConsoleRunner.java @@ -11,20 +11,21 @@ public class ConsoleRunner { public static void main(String[] args) { Scanner console = new Scanner(System.in); - ReadFile readFile = new ReadFile("text/dict.txt"); + InputReader readFile = new ReadFile("text/dict.txt"); String originalFile = readFile.readInput(); System.out.println("Оригинал "+originalFile); - ConsoleReader consoleReader = new ConsoleReader(console); + InputReader consoleReader = new ConsoleReader(console); String readInput = consoleReader.readInput(); - Map caesarCipher = LogicEncrypted.createCaesarCipher(3); + Map caesarCipher = LogicEncrypted.createCaesarCipher(5); String encrypted = encryptText(originalFile, caesarCipher); System.out.println("Зашифрованный текст " + encrypted); + WriteFile.writeToFile(encrypted,"text/encrypt.txt"); - Map deCipher = LogicDecrypted.cancelsCaesarCipher(3); + Map deCipher = LogicDecrypted.cancelsCaesarCipher(5); String decrypted = decryptText(encrypted, deCipher); System.out.println("Расшифрованный текст " + decrypted); console.close(); From d37b397d0d4282232de5d77e83a62333b2e14112 Mon Sep 17 00:00:00 2001 From: Anastasia Baeramshina Date: Sat, 6 Sep 2025 00:15:21 +0500 Subject: [PATCH 24/25] ADD enum Menu --- .../com/javarush/baeramshina/MenuOption.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/main/java/com/javarush/baeramshina/MenuOption.java diff --git a/src/main/java/com/javarush/baeramshina/MenuOption.java b/src/main/java/com/javarush/baeramshina/MenuOption.java new file mode 100644 index 0000000..0ddd8a7 --- /dev/null +++ b/src/main/java/com/javarush/baeramshina/MenuOption.java @@ -0,0 +1,37 @@ +package com.javarush.baeramshina; + +public enum MenuOption { + READ_CONSOLE("Прочитать с консоли"), + READ_FILE("Прочитать файл"), + ENCRYPT("Зашифровать текст"), + DECRYPT("Расшифровать текст"), + WRITE_FILE("Записать зашифрованный текст в отдельный файл"), + EXIT("Выход"); + + private final String description; + + MenuOption(String description) { + this.description = description; + } + + public String getDescription() { + return description; + } + + public static void printMenu() { + System.out.println("\nВыберите действие:"); + for (MenuOption value : MenuOption.values()) { + System.out.println((value.ordinal() + 1) + ". " + value.getDescription()); + } + System.out.println("Вы выбрали: "); + + } + public static MenuOption getOptionByNumber(int number){ + MenuOption[] options = MenuOption.values(); + if (number > 0 && number <= options.length) { + return options[number-1]; + } + return null; + } + } + From fd5cfbdb605c1688f89b2c6829750bd69ed374cf Mon Sep 17 00:00:00 2001 From: Anastasia Baeramshina Date: Sat, 6 Sep 2025 00:16:45 +0500 Subject: [PATCH 25/25] CHANGE ConsoleRunner --- .../javarush/baeramshina/ConsoleRunner.java | 92 +++++++++++++++++-- 1 file changed, 82 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/javarush/baeramshina/ConsoleRunner.java b/src/main/java/com/javarush/baeramshina/ConsoleRunner.java index 4d2acba..cf3db18 100644 --- a/src/main/java/com/javarush/baeramshina/ConsoleRunner.java +++ b/src/main/java/com/javarush/baeramshina/ConsoleRunner.java @@ -8,29 +8,101 @@ public class ConsoleRunner { + private static String originalText = null; + private static String encryptedText = null; + private static String decryptedText = null; + + public static void main(String[] args) { + Scanner console = new Scanner(System.in); + MenuOption selectedOption; + + while (true) { + MenuOption.printMenu(); + + String input = console.nextLine(); + try { + int optionNumber = Integer.parseInt(input); + selectedOption = MenuOption.getOptionByNumber(optionNumber); + if (selectedOption == null) { + System.out.println("Некорректный выбор, попробуйте еще."); + continue; + } + switch (selectedOption) { + + case READ_CONSOLE: + handleReadConsole(console); + break; + case READ_FILE: + handleReadFile(console); + break; + case ENCRYPT: + handleEncrypt(); + break; + case DECRYPT: + handleDecrypt(); + break; + case WRITE_FILE: + handleWriteFile(); + break; + case EXIT: + System.out.println("Выход"); + break; + default: + + break; + } + + } catch (NumberFormatException e) { + System.out.println("Пожалуйста, введите число."); + } + } + } + + private static void handleReadFile(Scanner console) { InputReader readFile = new ReadFile("text/dict.txt"); - String originalFile = readFile.readInput(); - System.out.println("Оригинал "+originalFile); + String fileContent = readFile.readInput(); + if (fileContent != null) { + originalText = fileContent; + System.out.println("Текст прочитан" + originalText); + } else { + System.out.println("Файл пуст или не найден"); + + } + } + private static void handleReadConsole(Scanner console) { InputReader consoleReader = new ConsoleReader(console); String readInput = consoleReader.readInput(); + if (readInput != null) { + originalText = readInput; + System.out.println("Текс введен: " + originalText); + } else { + System.out.println("Текст отсутствует"); + } + } + private static void handleEncrypt() { Map caesarCipher = LogicEncrypted.createCaesarCipher(5); - String encrypted = encryptText(originalFile, caesarCipher); - System.out.println("Зашифрованный текст " + encrypted); + encryptedText = encryptText(originalText, caesarCipher); + System.out.println("Зашифрованный текст " + encryptedText); + } + private static void handleWriteFile(){ + WriteFile.writeToFile(encryptedText, "text/encrypt.txt"); + System.out.println("Зашифрованный текст записан в файл ext/encrypt.txt");} - WriteFile.writeToFile(encrypted,"text/encrypt.txt"); + private static void handleDecrypt() { + + Map deCipher = LogicDecrypted.cancelsCaesarCipher(5); + decryptedText = decryptText(encryptedText, deCipher); + System.out.println("Расшифрованный текст " + decryptedText); - Map deCipher = LogicDecrypted.cancelsCaesarCipher(5); - String decrypted = decryptText(encrypted, deCipher); - System.out.println("Расшифрованный текст " + decrypted); -console.close(); } +} + -}