El Cifrado César en Java

En criptografía, el cifrado César, también conocido como cifrado por desplazamientocódigo de César o desplazamiento de César, es una de las técnicas de cifrado 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. – Wikipedia

Hola estimado lector, hoy tenía ganas de hacer un reto de criptografía, lo dí en el FP de grado medio hace algunos años, en aquellos años yo tenía 21 años, hoy por hoy me falta poco para cumplir la trentena, lo cual me trae muchos recuerdo de Juan Miguel, dando esto en clase allá por el 2011.

Y es que decir que este tipo de criptografía no vale nada, y que lo cómodo es utilizar frameworks que te hacen el trabajo ya hecho, pero como diría una profesora mía, antes de saber multiplicar, hay que saber sumar (o al menos saber cómo se hace, añado yo).

Por ello hoy traigo este algoritmo de César, ha sido bastante entretenido de hacer, espero que lo disfrutéis, probéis y experimenteis, ya que es la única forma de aprender, que vaya bien, chao…

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package javacesar;

/**
 *
 * @author usuario
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        //VARIABLES NORMALES
        String abcMin = «abcdefghijklmnñopqrstuwxyz»;
        String abcMay = new String(abcMin);
        String numeros = «0123456789»;
        abcMay = abcMay.toUpperCase();

        String[] arrAbcMin = abcMin.split(«»);
        String[] arrAbcMay = abcMay.split(«»);
        String[] arrNum = numeros.split(«»);

        //VARIABLES CESAR
        String abcMinCes = «cdefghijklmnñopqrstuwxyzab»;
        String abcMayCes = new String(abcMinCes);
        String numerosCes = «2345678901»;
        abcMayCes = abcMayCes.toUpperCase();

        String[] arrAbcMinCes = abcMinCes.split(«»);
        String[] arrAbcMayCes = abcMayCes.split(«»);
        String[] arrNumCes = numerosCes.split(«»);

        String mensaje = «TomHard Computer»;
        String letraIntermedio = «»;
        String mensajeIntermedio = «»;
        
        for (int i = 0; i < mensaje.length(); i++) {
          
            if (Character.isUpperCase(mensaje.charAt(i))) {
                
                for (int e=0;e<arrAbcMay.length;e++) {//COMPRUEBO SI ES MAYUSCULA
                    if (arrAbcMay[e].equals(mensaje.charAt(i)+»»)){
                        mensajeIntermedio=mensajeIntermedio+arrAbcMayCes[e];
                    }
                   
                }
              

            }else if(Character.isLowerCase(mensaje.charAt(i))){//COMPRUEBO SI ES MINUSCULA
               for (int e=0;e<arrAbcMin.length;e++) {
                    if (arrAbcMin[e].equals(mensaje.charAt(i)+»»)){
                        mensajeIntermedio=mensajeIntermedio+arrAbcMinCes[e];
                    }
                   
                }
                
            }else if(Character.isDigit(mensaje.charAt(i))){//COMPRUEBO SI ES UN NUMERO
                for (int e=0;e<arrNumCes.length;e++) {
                    if (arrNum[e].equals(mensaje.charAt(i)+»»)){
                        mensajeIntermedio=mensajeIntermedio+arrNumCes[e];
                    }
                   
                }
            
            }else{//EN CUALQUIER OTRO CASO CONCATENA CARACTER
                mensajeIntermedio=mensajeIntermedio+mensaje.charAt(i)+»»;
            }  

        }
        System.out.println(mensajeIntermedio);

    }

}

Gracias por visitar mi blog de informática, mi nombre es Tomás y soy formador y desarrollador web. Si quiere usted dejarme alguna sugerencia, ayuda o quiere un servicio de formación estoy escuchando ofertas en tomas.gonzalez@infogonzalez.com, en Facebook a https://www.facebook.com/Infogonzalez estoy deseando escucharle. Su duda o sugerencia NO molesta.

Deja un comentario

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

error: Content is protected !!

Descubre más desde InfoGonzalez - Blog de formador e informático

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad