Ir al contenido principal

Cifrado Cesar en python

Para aquellos que no lo sepan, el cifrado “Cesar” es un método de cifrado muy sencillo consistente en ir sustituyendo cada letra del mensaje a cifrar, por una letra que se encuentra un número fijo de posiciones en el alfabeto. Se trata de una técnica de cifrado que debe su nombre al emperador romano “Julio Cesar” a quién se atribuye su creación. A continuación muestro un sencillo ejemplo en el que cifraremos la palabra “CASA” empleando un valor de desplazamiento de 2:

ejemploci

Pues bien, en el articulo de hoy vamos a hacer un sencillo programa para cifrar mediante tal método, un texto introducido por nosotros.

Para ello como es natural, lo primero que haremos será pedir (mediante el correspondiente “input”) el texto que queremos traducir, que almacenaremos en la variable “texto”:

cfr1

A continuación, procederemos a crear la cadena de caracteres alfabéticos. Como queremos que nuestro programa funcione tanto para mayúsculas como para minúsculas, haremos que la variable “abc” (que es la que contendrá al alfabeto a emplear) contenga las letras en mayúsculas o minúsculas, en función de la naturaleza (mayúscula o minúscula) del texto introducido:

cfr2

Por su parte, vamos a crear nuestro programa de modo que podamos escoger el valor de desplazamiento dentro del alfabeto (lo que determinará la correspondencia entre caracteres). Para ello emplearemos otro “input”, en formato entero (“int”) en el que pediremos dicho valor. Tras ello, crearemos la cadena “cifrad” (que es la que destinaremos a albergar el texto cifrado final):

cfr3

Con esto ya tenemos los datos de partida. El paso siguiente es crear el sencillo algoritmo en el que una variable (a la que llamaremos “c”) irá representando a cada uno de los caracteres de la cadena “texto” (el texto a cifrar):

cfr4

Así, para cada valor de “c” (cada letra de “texto”) lo primero que comprobará el programa es si tal carácter se encuentra en la cadena “abc”. En en caso de que así sea, a la cadena “cifrad” se le añadirá el carácter ubicado en la posición correspondiente dentro de “abc”. La cual, a su vez,  se corresponderá  con el resto resultante de la división de  la nueva posición correspondiente (es decir la posición del valor actual de “c” mas el valor de desplazamiento “k”) y la longitud de la cadena “abc” (la cual obtenemos con la función “len”, aunque podríamos haber puesto directamente “27” que es el número de caracteres de la cadena “abc”). La razón del empleo de esta operación está en evitar los herrores “out of range” que podrían producirse en determinados casos (por ejemplo si tenemos que sustituir una “x” usando un valor de desplazamiento de 3).

Esto, como ya apuntamos, es para el caso de que el valor de “c” se encuentre, efectivamente en “abc”. No obstante puesto que queremos que todos los caracteres introducidos se vean de algún modo, representados en el texto final, diremos que si el valor actual de “c” no está en “abc”, dicho carácter se añada (sin sustitución) a la cadena “cifrad” sin más.

Hecho todo esto, tan solo nos queda visualizar el texto resultante, mediante “print”:

cfr5

Para comprobar que nuestro programa hace, en efecto lo que queremos, ejecutaremos el código 3 veces, introduciendo un texto en mayúsculas, otro en minúsculas y otro en el que hemos empleado dos caracteres (“¿” y “?”) no incluido en “abc”, aparte de los espacios en blanco:

cfrejec

Podemos ver como, eh¡fectivamente, en los 3 casos el programa a procedido a cifrar con éxito el texto introducido por nosotros.

Saludos.

Comentarios

Entradas más populares de este blog

Descargar vídeos y audios de YouTube con Python y Pafy

Introducción: YouTube es una plataforma que nos permite disfrutar de vídeos informativos, películas, música y mucho, mucho más. Siempre que escuchamos una canción queremos descargarla, si vemos un vídeo también queremos descargarlo, de esta manera podríamos verlos desde donde queramos sin necesidad de una conexión a Internet. Hoy te enseñare a descargar vídeos y audios de el sitio web conocido como YoutTube, esto lo lograremos haciendo uso de una librería llamada Pafy, si aun no tienes la librería Pafy, puedes descargarla ingresando al siguiente enlace:  Librería Pafy . Usando Pafy: Pafy una biblioteca de Python para descargar contenido de YouTube y recuperar metadatos. Antes de descargar contenido, usaremos a Pafy para obtener información de un vídeo especifico. A continuación te mostrare un ejemplo para obtener el titulo de un vídeo. import pafy url_video = " https://www.youtube.com/watch?v=JkK8g6FMEXE " video = pafy.new(url_video) pr

Calculando el factorial de un número (ejemplo de función recursiva).

Hola, mi nombre es Antonio Alfonso Martínez y en el presente artículo me dispongo a explicar un sencillo método para calcular el factorial de un número haciendo uso del concepto de recursividad. Para empezar, diremos que el factorial de un número natural "n" es el resultado del producto de todos los números desde 1 hasta dicho número "n". Así, para efectuar el calculo del factorial de un número, vamos a emplear una sencilla función a la que daremos el nombre de "factorial". De modo, que, partiendo del hecho de que el factorial de 1 y 0 es 1, construiremos nuestra función (a la que daremos el nombre de "factorial") para realizar el calculo del factorial de 5: Lo que hace esta función, es tomar como argumento un número "n". de modo que si este es 0 o 1 ("if n==0 or n==1:") la función devolverá directamente como resultado el número 1 ("resultado=1"). Sin embargo si dicho número "n" es mayor que

Sistema Hexadecimal - Sistema de numeración posicional

Sistema Hexadecimal El sistema hexadecimal es un sistema numérico que tiene como base el numero 16, y es una variante de los numero binarios El sistema hexadecimal es utilizado por nuestros ordenadores con el fin de abreviar valores de datos e instrucciones de memoria. Esta es una imagen que muestra el contenido de un archivo con exención 'dll' en un editor de texto, como el editor de texto no reconoce este tipo de archivo, nos lo muestra de esta manera: Como se puede apreciar, en vez de ver una gran cantidad de 0 y 1, vemos que hay grupos de 4 dígitos, y si observamos, vemos que son grupos de dígitos hexadecimales. El archivo cuentan con más de 48 mil lineas, por ello no se me es posible mostrarlo todo. Este es uno de los usos del sistema hexadecimal para abreviar grandes cantidades de 0 y 1. Ustedes mismos pueden hacer la prueba con una imagen o con cualquier otro tipo de texto. El sistema hexadecima, esta conformado por solo 16 dígitos. A continuación te los