Cifrado del cesar

olcano 1,469 views 3 slides Oct 13, 2012
Slide 1
Slide 1 of 3
Slide 1
1
Slide 2
2
Slide 3
3

About This Presentation

No description available for this slideshow.


Slide Content

Cifrado del Cesar – Algoritmo en Java
Posted by JF on feb 15, 2011 in Java | 2 comments

En criptografía, el cifrado César, también conocido como cifrado por desplazamiento,
código de César o desplazamiento de César, es una de las técnicas de codificación más
simples y más usadas. Es un tipo de cifrado por sustitución en el que una letra en el texto
original es reemplazada por otra letra que se encuentra un número fijo de posiciones más
adelante en el alfabeto. Por ejemplo, con un desplazamiento de 3, la A sería sustituida por
la D (situada 3 lugares a la derecha de la A ), la B sería reemplazada por la E, etc. Este
método debe su nombre a Julio César, que lo usaba para comunicarse con sus generales.
El cifrado César muchas veces puede formar parte de sistemas más complejos de
codificación, como el cifrado Vigenère, e incluso tiene aplicación en el sistema ROT13.
Como todos los cifrados de sustitución alfabética simple, el cifrado César se descifra con
facilidad y en la práctica no ofrece mucha seguridad en la comunicación. [Leer mas]
Implementación en Java del algoritmo del Cifrado del Cesar.
Primero creamos una clase a la que llamaremos “Cifrar.java” la cual tendrá todo el código
para realizar la sustitución por desplazamiento correspondiente al algoritmo del Cifrado del
Cesar.
?
Ver código JAVA
/**
* @author JF
* Implementaciòn del algoritmo de sustituciòn
* el cifrado del Cesar.
*/
public class Cifrar {

int desplazamiento;
String mensaje;
String clave = "";
String caracter;
char array[] =
{'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'};

public String descifrarMensaje(String msj, int desp){
mensaje = msj;
desplazamiento = desp;
recorrerMensaje();
return clave;

}

/**
* Recorrer cada letra del mensaje
*/
private void recorrerMensaje(){
String decod = "";
for(int i = 0; i < = mensaje.length() - 1; i++){
caracter = mensaje.substring(i, i + 1);
if(!caracter.equals(" ")){
int posicion = getPosicionCaracter(caracter);
decod = decrypt(posicion);
clave += decod;
}else{
clave += " ";
}
}
//String substring = mensaje.substring(desplazamiento,
desplazamiento)
}

private int getPosicionCaracter(String letra){
int posicion = 0;
for(int i = 0; i <= array.length; i++){
if(String.valueOf(array[i]).equals(letra)){
posicion = i;
break;
}
}
return posicion;
}

//Desencripta un caracter
public String decrypt(int c){
int posicion = c + desplazamiento;
if(posicion > array.length - 1) posicion = posicion -
array.length;
String decod = String.valueOf(array[posicion]);
return decod;
}
}
Ahora creamos una clase llamada “cifradodelcesar.java” que será la que tendrá nuestro
método principal y creará un objeto de la clase anterior.
?
Ver código JAVA
public class cifradodelcesar {

public static void main(String[] args){
Cifrar c1 = new Cifrar();
Cifrar c2 = new Cifrar();
System.out.println("P JHTL P ZHD P JVUXBLYLK = " +
c2.descifrarMensaje("P JHTL P ZHD P JVUXBLYLK" , 19));
}
}
Tags