Anteriormente vimos cómo implementar el algoritmo de cifrado de César en Python, ahora veremos cómo cifrar y descifrar una oración usando el cifrado César igualmente, pero en el lenguaje de programación C.
Implementar el algoritmo en C es un poco más complicado que en otros lenguajes, sobre todo por la manipulación de cadenas, pero eso no es un impedimento.
Veamos entonces cómo codificar el algoritmo de cifrado César en C.
Ya vimos cómo funciona el cifrado en términos generales. Ahora explicaré cómo usamos las funciones que provee C para alcanzar los resultados esperados, y cómo va el algoritmo general.
Recorremos la cadena letra por letra. A esa letra la convertimos a su representación entera, le sumamos las rotaciones necesarias y luego la convertimos de nuevo en letra; todo esto usando índices de cadenas y el código ASCII. Para decodificar o descifrar simplemente restamos en lugar de sumar.
Para saber si el carácter es una letra, usamos la función isalpha
; porque lo que no sea una letra no lo vamos a procesar. De igual manera, para saber si una letra es mayúscula usamos isupper
, lo necesitamos para saber cuál alfabeto usar.
Por otro lado, definimos algunas constantes como el máximo que puede tener la cadena, el código ascii de la a
y de la A
, la longitud del alfabeto y una función que calcula el módulo de un número y lo regresa de manera positiva.
Como necesitamos a ord
, usamos la función equivalente que vimos anteriormente. Otra cosa importante es la iteración de la cadena; usamos un simple while aumentando un contador.
Hablando del ciclo while, si el carácter no es una letra, utilizamos la palabra reservada continue
; la cual sirve para saltar a la siguiente iteración y no ejecutar el código que sigue.
El algoritmo como tal, funciona perfectamente. Tal vez sea complicada la parte en donde escaneamos la cadena, pero es porque fgets es mejor que scanf en cuanto a seguridad.
De todas maneras, la función trabaja por sí sola, la manera en la que le mandemos la cadena es cosa nuestra; en mi caso lo pongo de manera interactiva para que el usuario pueda probar fácilmente.
Aquí está todo el código, incluye las funciones necesarias para codificar una cadena en C utilizando el método César.
En el método main puse un ejemplo de uso. Espero que sea claro.
Si quieres cifrar, reserva 2 búfers o cadenas del mismo tamaño: una que tiene el mensaje original y otra en donde será puesto el mensaje cifrado.
En caso de que quieras descifrar, igualmente reserva 2 búfers del mismo tamaño. En uno pon el mensaje cifrado, y en el otro se pondrá el mensaje descifrado.
Todo esto, sin importar si cifras o no, está determinado por el número de rotaciones. Recuerda que si, por ejemplo, cifras con 3 rotaciones, debes hacer la operación inversa con el mismo número.
Aquí dejo un maravilloso replit para que puedas probar cómo se cifra una cadena en C utilizando el método de Julio César sin salir de tu navegador.
Así es como este post llega a su fin.
La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…
Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…
El día de hoy te enseñaré algo muy sencillo pero útil al programar con PHP:…
El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…
En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…
Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…
Esta web usa cookies.
Ver comentarios