· 6 years ago · Nov 21, 2019, 02:04 AM
1import java.util.Scanner;
2
3public class CaesarCipher {
4
5 static Scanner scan = new Scanner(System.in);
6
7 public static void main (String args[]) {
8
9
10 System.out.print("Please enter the message you would like to encrypt: ");
11 String originalMessage = scan.nextLine();
12
13 System.out.print("Please enter your secret key: ");
14 int secretKey = scan.nextInt();
15
16 encryptMessage(originalMessage, secretKey);
17
18 scan.nextLine();
19
20 System.out.print("\nPlease enter the message you would like to decrypt: ");
21 String userEncryptedMessage = scan.nextLine();
22
23 System.out.print("Please enter your secret key: ");
24 secretKey = scan.nextInt();
25
26 decryptMessage(userEncryptedMessage, secretKey);
27
28 scan.nextLine();
29
30 System.out.print("\nPlease enter the message you would like to identify: ");
31 String encryptedMessage = scan.nextLine();
32
33 System.out.print("\nPlease enter the letter you would like to identify: ");
34 char letter = scan.next().charAt(0);
35
36 System.out.print("Please enter your identifier number (the number of times the given letter appeared in the unencrypted message): ");
37 int numberOfTimes = scan.nextInt();
38
39 identifyKeys(encryptedMessage, letter, numberOfTimes);
40
41 }
42
43 public static String encryptMessage (String originalMessage, int secretKey) {
44 String encryptedMessage = "";
45
46 for (int i = 0; i < originalMessage.length(); i++) {
47 if (originalMessage.charAt(i) > 64 && originalMessage.charAt(i) < 91) {
48 char ch = (char)((int)(originalMessage.charAt(i) + (secretKey - 65)) % 26 + 65);
49 encryptedMessage += ch;
50 }
51 else {
52 encryptedMessage += originalMessage.charAt(i);
53 }
54 }
55 //Prints user encrypted message
56 System.out.println(encryptedMessage);
57
58 return encryptedMessage;
59 }
60
61 public static String decryptMessage (String userEncryptedMessage, int secretKey) {
62 String decryptedMessage = "";
63
64 for (int i = 0; i < userEncryptedMessage.length(); i++) {
65 if (userEncryptedMessage.charAt(i) > 64 && userEncryptedMessage.charAt(i) < 91) {
66 char ch = (char)((int)(userEncryptedMessage.charAt(i) + (secretKey - 65)) % 26 + 65);
67 decryptedMessage += ch;
68 }
69 else {
70 decryptedMessage += userEncryptedMessage.charAt(i);
71 }
72 }
73 //Prints user encrypted message
74 System.out.println(decryptedMessage);
75 return decryptedMessage;
76 }
77
78 public static void identifyKeys (String encryptedMessage, char letter, int numberOfTimes) {
79 int frequency = 0;
80 String decryptedMessage = "";
81
82 System.out.println(encryptedMessage);
83
84 //for (int i = 1; i < 26; i++) {
85 for (int j = 0; j < encryptedMessage.length(); j++) {
86 if (encryptedMessage.charAt(j) > 64 && encryptedMessage.charAt(j) < 91) {
87 char ch = (char)((int)(encryptedMessage.charAt(j) + (0 - 65)) % 26 + 65);
88 decryptedMessage += ch;
89 }
90 else {
91 decryptedMessage += encryptedMessage.charAt(j);
92 }
93
94 }
95 decryptedMessage = "";
96 System.out.println(decryptedMessage);
97
98 // }
99 }
100}