goncharov - 3 tasks (encrypt, decrypt, brute)#20
Conversation
demologin
left a comment
There was a problem hiding this comment.
Написано консольное приложение с тремя методами кодирование и декодирования из четырёх возможных. Метод грубой силы написан не очень аккуратно и скорее всего не всегда работоспособен. По остальному коду есть небольшие замечания. Итоговая оценка б
| @@ -0,0 +1,27 @@ | |||
| package com.javarush.goncharov.constants; | |||
|
|
|||
| public class ApplicationCompletionConstants { | |||
There was a problem hiding this comment.
Слишком неудобное название. Проще было бы назвать Messages
| @@ -0,0 +1,27 @@ | |||
| package com.javarush.goncharov.constants; | |||
|
|
|||
| public class ApplicationCompletionConstants { | |||
There was a problem hiding this comment.
А ещё если бы это сделать в виде интерфейса то не пришлось бы писать public static final
| @@ -0,0 +1,10 @@ | |||
| package com.javarush.goncharov.constants; | |||
|
|
|||
| public class CryptoAlphabet { | |||
| public class PathUtilsFunc { | ||
|
|
||
| public static String getInputFileEncode(String message){ | ||
| System.out.println(message); |
There was a problem hiding this comment.
в методах которые начинаются на Prefix get меньше всего ожидаешь увидеть вывод на консоль
| public static int getInputMode(String message){ | ||
| String input; | ||
| while (true){ | ||
| System.out.println(message); |
| } | ||
|
|
||
| public static void close(){ | ||
| System.exit(0); |
There was a problem hiding this comment.
Такие способы завершения приложений настоящие ночной кошмар для тестировщика, поэтому так лучше программу никогда не останавливать. Это самое настоящий аварийный вариант и то место где стоит ноль обычно предназначено для указания аварийного кода выхода
| Matcher matcher = PATTERN.matcher(textOutput); | ||
| if (matcher.find()) { | ||
| BruteForce.key = key; | ||
| BruteForce.find = true; |
There was a problem hiding this comment.
Тут как-то очень ненадёжно сделано, этот метод вызывается отдельно для каждой строки, и получается что в некоторых строках он может установить флаг что решение найдены а в некоторых нет. Лучше было бы анализировать весь текст целиком
| BufferedWriter writer = new BufferedWriter(new FileWriter(outputFileFile))){ | ||
|
|
||
| while (reader.ready()){ | ||
| writer.write(encodeText(reader.readLine(), key)); |
There was a problem hiding this comment.
кодирование и декодирования выполняется построчно а не посимвольно, это сильно поможет потенциальному взломщику определить границы строк
| import static com.javarush.goncharov.view.Decode.decode; | ||
| import static com.javarush.goncharov.view.Encode.encode; | ||
|
|
||
| public class Menu { |
There was a problem hiding this comment.
если в классе только статические методы то у него должен быть приватный конструктор пустой
|
|
||
| public class EntryPoint { | ||
| public static void main(String[] args) { | ||
| run(); |
There was a problem hiding this comment.
в данном классе нет никакого смысла
No description provided.