Ruby

Algoritmo de cifrado César en Ruby

Anteriormente vimos el cifrado César en C y el cifrado César en Python. No explicaré detalladamente cómo funciona el algoritmo pues a ello ya le dediqué otro post.

Lo que nos reúne aquí hoy es la implementación del algoritmo de “cifrado” César en el lenguaje de programación Ruby.

Algoritmo de cifrado César en Ruby

Al final vamos a crear una función que cifra y descifra según el cifrado de César, con un número de rotaciones definido por nosotros.

Función de cifrado césar en Ruby

Ya lo dije arriba pero lo digo de nuevo, aquí no explicaré el algoritmo, solamente pondré la función y cómo es que cada cosa se resuelve usando los métodos del lenguaje.

Dejo el código aquí y lo explico más abajo:

See the gist on github.

Hasta arriba definimos algunas variables globales que servirán de ayudantes; son el alfabeto y los valores del código ASCII en donde inicia la letra A mayúscula y minúscula.

Recorremos toda la cadena carácter por carácter y en cada iteración vemos si no es una letra; en caso de que no sea una letra, dejamos todo intacto.

En caso de que sí sea una letra entonces vemos si es mayúscula o minúscula y a partir de ello obtenemos el valor después de haber sido rotado. Más tarde tomamos el valor que esté en esa posición según el alfabeto a usar.

Me gusta mucho que la función para el cifrado César es “genérica” porque sirve para codificar y decodificar, ya que acepta un tercer parámetro que es 1 o -1; el cual indica el orden de rotación.

Más sobre la función

En primer lugar recibe la cadena, en segundo el número de rotaciones y en tercero el orden de rotación. Si es hacia la derecha es 1, y si es a la izquierda entonces es 2.

Devuelve una cadena la cual es el mensaje cifrado con las rotaciones indicadas.

Por cierto, para probar si es una letra o no, se utilizó una expresión regular; porque Ruby no provee un método como el isalpha del querido C.

Probar cifrado César hecho en Ruby

Si quieres, descarga el ejemplo, instala Ruby y ejecuta el comando ruby main.rb. También puedes probar el ejemplo en línea:

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Compartir
Publicado por
parzibyte

Entradas recientes

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

5 días hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

5 días hace

Imprimir PDF generado con HTML

Hoy vamos a ver programar la impresión de un PDF generado a partir de HTML…

7 días hace

JavaScript: llenar select con arreglo

En este tutorial básico de JavaScript con HTML vamos a ver cómo llenar una lista…

2 semanas hace

Imprimir PDF a partir de URL

En este artículo se presenta una guía para imprimir un PDF a partir de una…

2 semanas hace

Imprimir PDF a partir de base64

En este post voy a enseñarte cómo imprimir un PDF a partir de su representación…

2 semanas hace

Esta web usa cookies.