diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..af6f9dc --- /dev/null +++ b/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/.gitignore b/.gitignore index 0bb47a3..7ebc4a7 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,4 @@ git.properties #IDEA Project Files .idea/ +/bin/ diff --git a/.project b/.project new file mode 100644 index 0000000..e0ffbb5 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + enc-dec + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/src/crypto/Crypto.java b/src/crypto/Crypto.java index 51d57b7..157d9ca 100644 --- a/src/crypto/Crypto.java +++ b/src/crypto/Crypto.java @@ -2,9 +2,17 @@ import java.util.Scanner; +import translater.Translater; +import translater.TranslaterFactory; + public class Crypto { public static void main(String[] args) { - Scanner scanner = new Scanner(System.in); - // write your code here + Scanner scanner = new Scanner(System.in); + String cmd = scanner.nextLine(); + String message = scanner.nextLine(); + int key = scanner.nextInt(); + scanner.close(); + Translater translater = TranslaterFactory.getTranslater(cmd,message,key); + System.out.println(translater.translate()); } } diff --git a/src/translater/Decrypter.java b/src/translater/Decrypter.java new file mode 100644 index 0000000..ac61c9c --- /dev/null +++ b/src/translater/Decrypter.java @@ -0,0 +1,10 @@ +package translater; + +public class Decrypter extends Translater{ + public Decrypter(String message, int key) { + super(message,key); + } + public char symbolChange(char incomeWord) { + return (char)((incomeWord-key)%127); + } +} diff --git a/src/translater/Encrypter.java b/src/translater/Encrypter.java new file mode 100644 index 0000000..1078945 --- /dev/null +++ b/src/translater/Encrypter.java @@ -0,0 +1,10 @@ +package translater; + +public class Encrypter extends Translater { + public Encrypter(String message, int key) { + super(message,key); + } + public char symbolChange(char incomeWord) { + return (char)((incomeWord+key)%127); + } +} diff --git a/src/translater/Translater.java b/src/translater/Translater.java new file mode 100644 index 0000000..e76697b --- /dev/null +++ b/src/translater/Translater.java @@ -0,0 +1,20 @@ +package translater; + +public abstract class Translater { + public String message; + public int key; + public Translater(String message, int key) { + this.message = message; + this.key = key; + } + //TRANSLATING STRING + public String translate() { + char[] tempArray = message.toCharArray(); + for (int i = 0; i < tempArray.length; i++) { + tempArray[i] = symbolChange(tempArray[i]); + } + return String.valueOf(tempArray); + } + //ABSTRACT SYMBOL CHANGE METHOD + public abstract char symbolChange(char incomeWord); +} diff --git a/src/translater/TranslaterFactory.java b/src/translater/TranslaterFactory.java new file mode 100644 index 0000000..b8c51d3 --- /dev/null +++ b/src/translater/TranslaterFactory.java @@ -0,0 +1,14 @@ +package translater; + +public class TranslaterFactory { + public static Translater getTranslater(String cmd, String message, int key) { + switch (cmd){ + case "dec": + return new Decrypter(message, key); + case "enc": + return new Encrypter(message, key); + default: + return null; + } + } +}