-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBaconian.java
102 lines (94 loc) · 3.84 KB
/
Baconian.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
/*H****************************************************************
* FILENAME : Baconian.java
*
* DESCRIPTION :
* Encrypts and decrpyts text using Baconian cipher
*
* Copyright 2019, Jacob Wilkins. All rights reserved.
*
* AUTHOR : Jacob Wilkins START DATE : 11 Jun 19
*
*H*/
import java.util.Vector;
public class Baconian {
public static String Baconian_encrypt(String text) {
text = text.toLowerCase();
String result = "";
for (int i = 0; i < text.length(); i++) {
char character = text.charAt(i);
if (character == 'a') { result += "aaaaa"; }
else if (character == 'b') { result += "aaaab"; }
else if (character == 'c') { result += "aaaba"; }
else if (character == 'd') { result += "aaabb"; }
else if (character == 'e') { result += "aabaa"; }
else if (character == 'f') { result += "aabab"; }
else if (character == 'g') { result += "aabba"; }
else if (character == 'h') { result += "aabbb"; }
else if (character == 'i') { result += "abaaa"; }
else if (character == 'j') { result += "abaab"; }
else if (character == 'k') { result += "ababa"; }
else if (character == 'l') { result += "ababb"; }
else if (character == 'm') { result += "abbaa"; }
else if (character == 'n') { result += "abbab"; }
else if (character == 'o') { result += "abbba"; }
else if (character == 'p') { result += "abbbb"; }
else if (character == 'q') { result += "baaaa"; }
else if (character == 'r') { result += "baaab"; }
else if (character == 's') { result += "baaba"; }
else if (character == 't') { result += "baabb"; }
else if (character == 'u') { result += "babaa"; }
else if (character == 'v') { result += "babab"; }
else if (character == 'w') { result += "babba"; }
else if (character == 'x') { result += "babbb"; }
else if (character == 'y') { result += "bbaaa"; }
else if (character == 'z') { result += "bbaab"; }
else { result = result + String.valueOf(character); }
}
return result;
}
public static String Baconian_decrypt(String text) {
String result = "";
Vector<Integer> spaceIndex = new Vector<Integer>();
int i = text.indexOf(' ');
while (i >= 0) {
spaceIndex.add(i / 5);
i = text.indexOf(' ', i + 1);
}
String text2 = text.replaceAll("[^a-zA-Z]", "");
String[] tokens = text2.split("(?<=\\G.{5})");
for (i = 0; i < tokens.length; i++) {
if (spaceIndex.contains(i)) {
result += " ";
}
String token = tokens[i];
System.out.println(token);
if (token.equals("aaaaa")) { result += "a"; }
else if (token.equals("aaaab")) { result += "b"; }
else if (token.equals("aaaba")) { result += "c"; }
else if (token.equals("aaabb")) { result += "d"; }
else if (token.equals("aabaa")) { result += "e"; }
else if (token.equals("aabab")) { result += "f"; }
else if (token.equals("aabba")) { result += "g"; }
else if (token.equals("aabbb")) { result += "h"; }
else if (token.equals("abaaa")) { result += "i"; }
else if (token.equals("abaab")) { result += "j"; }
else if (token.equals("ababa")) { result += "k"; }
else if (token.equals("ababb")) { result += "l"; }
else if (token.equals("abbaa")) { result += "m"; }
else if (token.equals("abbab")) { result += "n"; }
else if (token.equals("abbba")) { result += "o"; }
else if (token.equals("abbbb")) { result += "p"; }
else if (token.equals("baaaa")) { result += "q"; }
else if (token.equals("baaab")) { result += "r"; }
else if (token.equals("baaba")) { result += "s"; }
else if (token.equals("baabb")) { result += "t"; }
else if (token.equals("babaa")) { result += "u"; }
else if (token.equals("babab")) { result += "v"; }
else if (token.equals("babba")) { result += "w"; }
else if (token.equals("babbb")) { result += "x"; }
else if (token.equals("bbaaa")) { result += "y"; }
else if (token.equals("bbaab")) { result += "z"; }
}
return result;
}
}