Playfair cipher: Difference between revisions

Content deleted Content added
→‎{{header|zkl}}: dawn of the brain dead
Line 281: Line 281:
String jti = prompt("Replace J with I? y/n: ", sc, 1);
String jti = prompt("Replace J with I? y/n: ", sc, 1);


boolean JtoI = jti.equalsIgnoreCase("y");
boolean changeChar = jti.equalsIgnoreCase("y");


createTable(key, JtoI);
createTable(key, JtoI);


String enc = encode(prepareText(txt, JtoI));
String enc = encode(prepareText(txt, changeChar));


System.out.printf("%nEncoded message: %n%s%n", enc);
System.out.printf("%nEncoded message: %n%s%n", enc);
Line 300: Line 300:
}
}


private static String prepareText(String s, boolean JtoI) {
private static String prepareText(String s, boolean changeChar) {
s = s.toUpperCase().replaceAll("[^A-Z]", "");
s = s.toUpperCase().replaceAll("[^A-Z]", "");
return JtoI ? s.replace("J", "I") : s.replace("Q", "");
return changeChar ? s.replace("J", "I") : s.replace("Q", "");
}
}


private static void createTable(String key, boolean JtoI) {
private static void createTable(String key, boolean changeChar) {
charTable = new char[5][5];
charTable = new char[5][5];
positions = new Point[26];
positions = new Point[26];


String s = prepareText(key + "ABCDEFGHIJKLMNOPQRSTUVWXYZ", JtoI);
String s = prepareText(key + "ABCDEFGHIJKLMNOPQRSTUVWXYZ", changeChar);


int len = s.length();
int len = s.length();