package unsch.efpis.cifrador;
/**
*
* @author sin_querer@hotmail.com
*/
public class CifradorPolybios {
String tablaPolybiosLetras[][] = {
{"AA", "AB", "AC", "AD", "AE"},
{"BA", "BB", "BC", "BD", "BE"},
{"CA", "CB", "CC", "CD", "CE"},
{"DA", "DB", "DC", "DD", "DE"},
{"EA", "EB", "EC", "ED", "EE"}
};
String tablaPolybiosNumeros[][] = {
{"11", "12", "13", "14", "15"},
{"21", "22", "23", "24", "25"},
{"31", "32", "33", "34", "35"},
{"41", "42", "43", "44", "45"},
{"51", "52", "53", "54", "55"}
};
public String getTextoCifradoEnLetras(char parTextoClaro) {
String parTextoCifrado = "";
int codigoAscciiParTextoClaro = (int) (parTextoClaro);
if (codigoAscciiParTextoClaro != 32) {
if (codigoAscciiParTextoClaro > 73) {
codigoAscciiParTextoClaro -= 1;
}
int indiceX = (codigoAscciiParTextoClaro - 65) / 5;
int indiceY = (codigoAscciiParTextoClaro % 5);
parTextoCifrado = tablaPolybiosLetras[indiceX][indiceY];
} else {
parTextoCifrado = " ";
}
return parTextoCifrado;
}
public String getTextoCifradoEnNumeros(char parTextoClaro) {
String parTextoCifrado = "";
int codigoAscciiParTextoClaro = (int) (parTextoClaro);
if (codigoAscciiParTextoClaro != 32) {
if (codigoAscciiParTextoClaro > 73) {
codigoAscciiParTextoClaro -= 1;
}
int indiceX = (codigoAscciiParTextoClaro - 65) / 5;
int indiceY = (codigoAscciiParTextoClaro % 5);
parTextoCifrado = tablaPolybiosNumeros[indiceX][indiceY];
} else {
parTextoCifrado = " ";
}
return parTextoCifrado;
}
}