Nick Satinover 7 лет назад
Родитель
Сommit
1ca25acac1
2 измененных файлов: 23 добавлений и 153 удалений
  1. 23
    43
      Crypto/src/Main/ROT13.java
  2. 0
    110
      Crypto/src/Main/ROT13A.java

+ 23
- 43
Crypto/src/Main/ROT13.java Просмотреть файл

@@ -1,15 +1,18 @@
1
-
2 1
 import java.util.Arrays;
3 2
 import java.util.List;
4 3
 
5
-import static java.lang.Character.isLowerCase;
6
-import static java.lang.Character.isUpperCase;
7
-import static java.lang.Character.toLowerCase;
8
-
9 4
 public class ROT13  {
10 5
     private int rotate;
11 6
     private int encryptShift = 26;
7
+    private boolean encrypt;
8
+
9
+    public boolean isEncrypt() {
10
+        return encrypt;
11
+    }
12 12
 
13
+    public void setEncrypt(boolean encrypt) {
14
+        this.encrypt = encrypt;
15
+    }
13 16
 
14 17
     ROT13(Character cs, Character cf) {
15 18
         rotate = (int)(cs) - (int)(cf);
@@ -26,54 +29,46 @@ public class ROT13  {
26 29
         return encrypt(text);
27 30
     }
28 31
 
29
-
30
-    public String crypt(String text, int shift, int rotate, boolean encrypt) throws UnsupportedOperationException {
32
+    public String crypt(String text, int rotate) throws UnsupportedOperationException {
31 33
         List<String> textList = Arrays.asList(text.split(" "));
32 34
         StringBuilder builder = new StringBuilder();
33 35
 
34 36
         for (String s: textList) {
35 37
             char[] charArr = s.toCharArray();
36 38
             for (char c: charArr) {
37
-                if (encrypt)
38
-                    builder.append(shiftCharEncrypt(c, shift, rotate));
39
-                else {
40
-                    builder.append(shiftCharDecrypt(c, shift, rotate));
41
-                }
39
+                String strToAppend = isEncrypt() ? shiftCharEncrypt(c, rotate) : shiftCharDecrypt(c, rotate);
40
+                builder.append(strToAppend);
42 41
             }
43 42
             builder.append(" ");
44 43
         }
45
-
46 44
         return builder.toString().trim();
47 45
     }
48 46
 
49 47
     public String encrypt(String text) {
50
-        return crypt(text, encryptShift, getRotate(), true);
48
+        setEncrypt(true);
49
+        return crypt(text, getRotate());
51 50
     }
52 51
 
53 52
     public String decrypt(String text) {
54
-
55
-        return crypt(text, encryptShift * -1, getRotate() * -1, false);
53
+        setEncrypt(false);
54
+        return crypt(text, getRotate() * -1);
56 55
     }
57 56
 
58
-    public String shiftCharEncrypt(char c, int shift, int rotate){
57
+    public String shiftCharEncrypt(char c, int rotate){
59 58
         if (c > 64){
60
-            if ( (c > 96 && (c+ rotate) > 96) || (c <= 96 && (c+ rotate) > 64))
61
-                return  ( Character.toString( (char)(c+ rotate) ) );
62
-            else {
63
-                return  ( Character.toString( (char)(c+ rotate +shift) ) );
64
-            }
59
+            return  ( (c > 96 && (c + rotate) > 96) || (c <= 96 && (c + rotate) > 64) ) ?
60
+                    ( Character.toString( (char)(c + rotate) ) ) :
61
+                    ( Character.toString( (char)(c + rotate + encryptShift) ) );
65 62
         } else {
66 63
             return Character.toString(c);
67 64
         }
68 65
     }
69 66
 
70
-    public String shiftCharDecrypt(char c, int shift, int rotate){
67
+    public String shiftCharDecrypt(char c, int rotate){
71 68
         if (c > 64){
72
-            if ( (c + rotate > 122) || (c <= 90  && c + rotate > 90 ) ) // ( (c < 123 && (c+ rotate) < 123) || (c <= 123 && (c+ rotate) > 64))
73
-                return  ( Character.toString( (char)(c+ rotate +shift) ) );
74
-            else {
75
-                return  ( Character.toString( (char)(c+ rotate) ) );
76
-            }
69
+            return  ( (c + rotate > 122) || (c <= 90  && c + rotate > 90 ) ) ?
70
+                    ( Character.toString( (char)(c + rotate + encryptShift * -1) ) ) :
71
+                    ( Character.toString( (char)(c + rotate) ) );
77 72
         } else {
78 73
             return Character.toString(c);
79 74
         }
@@ -94,22 +89,7 @@ public class ROT13  {
94 89
             returnChar[j] = (char)( (int)(charArr[i]));
95 90
             j++;
96 91
         }
97
-
98 92
         return String.copyValueOf(returnChar);
99 93
     }
100 94
 
101 95
 }
102
-//    public String encrypt(String word) {
103
-//        char[] charArr = word.toCharArray();
104
-//        for(int i = 0; i < charArr.length; i++)
105
-//        {
106
-//            int tempInt = ((int)charArr[i]) + 3;
107
-//            if(tempInt > 122)
108
-//            {
109
-//                tempInt -= 26;
110
-//            }
111
-//            charArr[i] = (char)tempInt;
112
-//        }
113
-//        String returnStr = new String(charArr);
114
-//        return returnStr;
115
-//    }

+ 0
- 110
Crypto/src/Main/ROT13A.java Просмотреть файл

@@ -1,110 +0,0 @@
1
-
2
-import java.util.Arrays;
3
-import java.util.List;
4
-
5
-import static java.lang.Character.isLowerCase;
6
-import static java.lang.Character.isUpperCase;
7
-import static java.lang.Character.toLowerCase;
8
-
9
-public class ROT13A  {
10
-    private int rotate;
11
-    private int encryptShift = 26;
12
-
13
-
14
-    ROT13A(Character cs, Character cf) {
15
-        rotate = (int)(cs) - (int)(cf);
16
-    }
17
-
18
-    ROT13A() {
19
-    }
20
-
21
-    public int getRotate() {
22
-        return rotate;
23
-    }
24
-
25
-    public String crypt(String text, int shift, int rotate, boolean encrypt) throws UnsupportedOperationException {
26
-        List<String> textList = Arrays.asList(text.split(" "));
27
-        StringBuilder builder = new StringBuilder();
28
-
29
-        for (String s: textList) {
30
-            char[] charArr = s.toCharArray();
31
-            for (char c: charArr) {
32
-                if (encrypt)
33
-                    builder.append(shiftCharEncrypt(c, shift, rotate));
34
-                else {
35
-                    builder.append(shiftCharDecrypt(c, shift, rotate));
36
-                }
37
-            }
38
-            builder.append(" ");
39
-        }
40
-
41
-        return builder.toString().trim();
42
-    }
43
-
44
-    public String encrypt(String text) {
45
-        return crypt(text, encryptShift, getRotate(), true);
46
-    }
47
-
48
-    public String decrypt(String text) {
49
-
50
-        return crypt(text, encryptShift * -1, getRotate() * -1, false);
51
-    }
52
-
53
-    public String shiftCharEncrypt(char c, int shift, int rotate){
54
-        if (c > 64){
55
-            if ( (c > 96 && (c+ rotate) > 96) || (c <= 96 && (c+ rotate) > 64))
56
-                return  ( Character.toString( (char)(c+ rotate) ) );
57
-            else {
58
-                return  ( Character.toString( (char)(c+ rotate +shift) ) );
59
-            }
60
-        } else {
61
-            return Character.toString(c);
62
-        }
63
-    }
64
-
65
-    public String shiftCharDecrypt(char c, int shift, int rotate){
66
-        if (c > 64){
67
-            if ( (c + rotate > 122) || (c <= 90  && c + rotate > 90 ) ) // ( (c < 123 && (c+ rotate) < 123) || (c <= 123 && (c+ rotate) > 64))
68
-                return  ( Character.toString( (char)(c+ rotate +shift) ) );
69
-            else {
70
-                return  ( Character.toString( (char)(c+ rotate) ) );
71
-            }
72
-        } else {
73
-            return Character.toString(c);
74
-        }
75
-    }
76
-
77
-    public static String rotate(String s, Character c) {
78
-        int staticRotateBy = (int)(c) - (int)(s.charAt(0));
79
-        char[] charArr = s.toCharArray();
80
-        char[] returnChar = new char[charArr.length];
81
-
82
-        int j = 0;
83
-        for (int i = staticRotateBy; i < returnChar.length; i++) {
84
-            returnChar[j] = (char)( (int)(charArr[i]));
85
-            j++;
86
-        }
87
-
88
-        for (int i = 0; i < staticRotateBy; i++) {
89
-            returnChar[j] = (char)( (int)(charArr[i]));
90
-            j++;
91
-        }
92
-
93
-        return String.copyValueOf(returnChar);
94
-    }
95
-
96
-}
97
-//    public String encrypt(String word) {
98
-//        char[] charArr = word.toCharArray();
99
-//        for(int i = 0; i < charArr.length; i++)
100
-//        {
101
-//            int tempInt = ((int)charArr[i]) + 3;
102
-//            if(tempInt > 122)
103
-//            {
104
-//                tempInt -= 26;
105
-//            }
106
-//            charArr[i] = (char)tempInt;
107
-//        }
108
-//        String returnStr = new String(charArr);
109
-//        return returnStr;
110
-//    }