Java – ROT13

Hola Mundo
Ubyn Zhaqb
Hola Mundo

/**
 * Rot13.java
 *
 * Ejemplo de la implementación del cifrado ROT13 en Java.
 *
 * Compilar:
 *     javac Rot13.java
 */

/**
 *
 * @author Dark[byte]
 */
class Rot13 {

    static String cadena = "Hola Mundo";    //cadena de caracteres

    /**
     * Punto de entrada del programa.
     *
     * @param args argumentos de la línea de comandos.
     */
    public static void main(String[] args) {
        System.out.println(cadena);     //imprime la cadena en pantalla

        String str1 = rot13(cadena);    //cifra la cadena y se guarda en str1
        System.out.println(str1);       //imprime str1 en pantalla
 
        String str2 = rot13(str1);      //descifra str1 y se guarda en str2
        System.out.println(str2);       //imprime str2 en pantalla 
    }

    /**
     * Cifra o Descifra una cadena de caracteres en ROT13.
     * 
     * @param cadena la cadena de caracteres.
     * 
     * @return una cadena de caracteres cifrada o descifrada.
     */
    static String rot13(String cadena) {
        char c;
        StringBuilder temp = new StringBuilder();        //crea un StringBuilder para construir la cadena resultante en la variable temp

        for (int i = 0 ; i < cadena.length() ; i++) {    //comienza el bucle para analizar los caracteres de la cadena
            c = cadena.charAt(i);                        //obtiene el carácter de la posición actual de la cadena y se guarda en la variable c

            if (c >= 'A' && c < 'N') {            //compara c con A y N
                c += 13;                          //si es igual o mayor que A y menor que N, se realiza un desplazamiento sumándole 13
            } else if (c >= 'N' && c <= 'Z') {    //compara c con N y Z
                c -= 13;                          //si es igual o mayor que N e igual o menor que Z, se realiza un desplazamiento restándole 13
            } else if (c >= 'a' && c < 'n') {     //compara c con a y n
                c += 13;                          //si es igual o mayor que a y menor que n, se realiza un desplazamiento sumándole 13
            } else if (c >= 'n' && c <= 'z') {    //compara c con n y z
                c -= 13;                          //si es igual o mayor que n e igual o menor que z, se realiza un desplazamiento restándole 13
            }

            temp.append(c);    //añade c en temp
        }

        return temp.toString();    //retornamos la variable temp, la cual contiene la cadena cifrada o descifrada
    }
}

,

  1. Deja un comentario

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: