Sunteți pe pagina 1din 2

package cesar;

public class Cesar {


/** Clase para encriptar y descifrar con el cifrador de César. */
public static final char[] abc = {'A','B','C','D','E','F','G','H', 'I',
'J','K','L','M',
'N','O','P','Q','R','S','T','U','V','W','X','Y','Z','1','2','3','4','5','6','7','8'
,'9','0','.',',',';',' '};
protected char[] encriptar = new char[abc.length]; // Arreglo
encriptamiento
protected char[] descifrar = new char[abc.length]; // Arreglo
desciframiento
protected int recorrer;
/** Constructor para inicializar los arreglos de encriptamiento y
* desciframiento */
public Cesar(int numRec) {
recorrer=numRec;
for (int i=0; i<abc.length; i++){
if(numRec>=0){
encriptar[i] = abc[(i+abc.length+recorrer)%abc.length]; // rotar
alfabenumpuntos numRec lugares
descifrar[i] = abc[i]; // descifrar inverso a encriptar
}
else{
encriptar[i] = abc[(recorrer+abc.length-i)%abc.length]; //
rotar alfabenumpuntos numRec lugares
descifrar[i] = abc[i]; // descifrar inverso a encriptar
}
}
}
/** Método de encriptamiento */
public String encriptar(String secreto) {
char[] mensj = secreto.toCharArray(); // arreglo mensaje
for (int j=0; j<mensj.length; j++){ // ciclo de encriptamiento
for(int i=0;i<abc.length;i++){
if (mensj[j]==abc[i]){
mensj[j]=encriptar[i]; // usar letra como índice
break;
}
}
}
return new String(mensj);
}
/** Método de desciframiento */
public String descifrar(String secreto) {
char[] mensj = secreto.toCharArray(); // arreglo mensaje
for (int j=0; j<mensj.length; j++){ // ciclo desciframiento
for(int i=0;i<abc.length;i++){
if(mensj[j]==encriptar[i]){
mensj[j] = descifrar[i]; // usar letra como índice
break;
}
}
}
return new String(mensj);
}
/** Metodo main para probar el cifrador de César */
public static void main(String[] args) {
Cesar cifrador = new Cesar(-1); // Crear un objeto cifrado de César con
desplazamiento 6 el rango de desplazamiento va de 0 a 39
System.out.println("Orden de Encriptamiento = " +
new String(cifrador.encriptar));
System.out.println("Orden de Descifrado = " +
new String(cifrador.descifrar));
String secreto = "TE AMO CARI;O";
secreto = cifrador.encriptar(secreto);
System.out.println(secreto); // el texto cifrado
secreto = cifrador.descifrar(secreto);
System.out.println(secreto); // debería ser texto
plano
}
}

S-ar putea să vă placă și