rendered paste bodyimport java.io.*;
public class Vigenere2 {
public static void main(String args[]) {
int k;
int i;
int p;
String casos = null;
String message = null;
String key = null;
String alpha = new String("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
BufferedReader buff = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.println("Bienvenido, porfavor, eliga una opción. Escriba 1 si desea encriptar su mensaje, 2 si desea desencriptar y 3 para salir: ");
casos = buff.readLine(); k = Integer.parseInt(casos);
switch (k)
{
case 1:
try {
System.out.print("Mensaje: ");
message = buff.readLine();
message = message.toUpperCase();
System.out.print("Llave: ");
key = buff.readLine();
key = key.toUpperCase();
char[] output = new char[message.length()];
for (i = 0; i < message.length(); i++) {
if (alpha.indexOf(message.charAt(i)) >= 0) {
p = (int)message.charAt(i) + (int)key.charAt(i%key.length());
output[i] = alpha.charAt(p >= 0 ? p % alpha.length() : alpha.length() + p);
} else {
output[i] = message.charAt(i);
}
}
System.out.print(new String(output)+"\n");
} catch (IOException e) {
System.out.print("Error.\n");
System.exit(1);
}
break;
case 2:
try {
System.out.print("Mensaje: ");
message = buff.readLine();
message = message.toUpperCase();
System.out.print("Llave: ");
key = buff.readLine();
key = key.toUpperCase();
char[] output = new char[message.length()];
for (i = 0; i < message.length(); i++) {
if (alpha.indexOf(message.charAt(i)) >= 0) {
p = (int)message.charAt(i) - (int)key.charAt(i%key.length());
output[i] = alpha.charAt(p >= 0 ? p % alpha.length() : alpha.length() + p);
} else {
output[i] = message.charAt(i);
}
}
System.out.print(new String(output)+"\n");
} catch (IOException e) {
System.out.print("Error.\n");
System.exit(1);
}
break;
case 3:
System.out.println("Hasta la vista!");
System.exit(0);
break;
default:
System.out.println("Error!");
System.exit(0);
break;
}
} catch (IOException e) {
System.out.print("Error.\n");
System.exit(1);
}
}
}