解読プログラムが正しく動作していません...
public static void decipherMessage() {
Scanner sc = new Scanner(in);
System.out.println("Enter keyword: ");
String decipher = sc.nextLine();
String plain = ("abcdefghijklmnopqrstuvwxyz");
String cipher = decipher + "abcdefghijklmnopqrstuvwxyz";
System.out.println("Enter enciphered message: ");
String ciphMsg = sc.nextLine();
String decipherMessage = ciphMsg.toLowerCase();
char[] chars = cipher.toCharArray();
Set<Character> charSet = new LinkedHashSet<Character>();
for (char c : chars) {
charSet.add(c);
}
StringBuilder cMap = new StringBuilder();
for (Character character : charSet) {
cMap.append(character);
StringBuilder original = cMap;
}
for (int i = 0; i < 26; i++)
{
char cipherTextChar = cMap.charAt(i);
char plainTextChar = plain.charAt(i);
decipherMessage = decipherMessage.replace(cipherTextChar,plainTextChar);
System.out.println("Deciphered message");
System.out.println(decipherMessage);
}
平文の文字は暗号化された文字を置き換えることになっています
しかし、それを実行すると、解読せずに暗号化されたメッセージが再び表示されますか?
例。
keyword: stack
plain : abcdefghijklmnopqrstuvwxyz
cipher: stackbdefghijlmnopqruvwxyz
message: overflow
ciphered message: mvhpbimw
逆を除いて。上記のコードを使用すると、何も解読せずに、暗号化されたメッセージが再び表示されます。