Está en la página 1de 6

Cifrado de Cesar

El Cifrado Cesar es un tipo de Cifrado de sustitución, en el que cada letra del texto simple es

reemplazada por otra letra en algunas posiciones fijas de la letra actual del alfabeto.

Por ejemplo, si desplazamos cada letra en tres posiciones a la derecha, cada una de las

letras de nuestro texto plano será reemplazada por una letra en tres posiciones a la derecha de

la letra del texto plano.

El Cifrado César es una de las técnicas de cifrado más antiguas en las que nos centraremos

en este tutorial, e implementaremos la misma en Python.

Aunque el Cifrado César es una técnica de encriptación muy débil y rara vez se utiliza

hoy en día, estamos haciendo este tutorial para introducir a nuestros lectores, especialmente a

los recién llegados, a la encriptación.


1. Encendemos nuestra maquina en este caso se utilizara una máquina virtual Linux, pero se
puede realizar en cualquier máquina que soporte python.

2. Luego verificamos si nuestra maquina tiene python instalado (en Linux entramos en el
terminal e introducimos la siguiente línea de comando: python -V).

3. Después usamos el siguiente Script para probar el cifrado de Cesar para este caso
cifraremos los siguientes datos: Nombre, apellido y dirección.
4. Como podemos ver este Script puede cifrarnos los datos sustituyendo las letras por otras
del alfabeto.

Otros métodos de la regla de cifrado de Cesar.

Método #1
Lo primero que haremos será pedir (mediante el correspondiente “input”) el texto que
queremos traducir, que almacenaremos en la variable “texto”:
texto=input("Tu texto: ")

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:
abc="ABCDEFGHIJKLMNÑOPQRSTUVWXYZabcdefghijklmnñopqrstuwxyz"

Se crea un modo para escoger el desplazamiento dentro del alfabeto, para eso se empleara
otro "input", en formato entero ("int") en el que se pedira dicho valor. Despues de eso
creamos una cadena "cifrad".
k=OKI(input("Valor de desplazamiento: "))
cifrad=""

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):
for c in texto:
if c in abc:
cifrad += abc[(abc.index(c)+k)%(len(abc))]
else:
cifrad+=c

Método #2
Primero que nada debemos crea las listas que contendrán un alfabeto, que en este caso es el
abecedario en minúsculas y mayúsculas.

alfabetoMinus = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
'm', 'n', 'ñ', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z
']
alfabetoMayus = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L',
'M', 'N', 'Ñ', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z
']

Ya teniendo el alfabeto se hace la comparación de los caracteres del mensaje con cada
elemento del alfabeto. Para lo cual se recorre primero la cadena de caracteres que contiene el
mensaje y después la lista que contiene el alfabeto.

Cuando se encuentra una coincidencia se le aumenta 3 al índice donde fueron coincidentes


los caracteres y se concatena la letra en la posición i+3 en una nueva cadena (Clave).
palabra =(input("Ingrese una palabra: "))
def Codificar(Palabra, Avance):
Clave = ''
Tope = len(alfabetoMayus)
Posicion = 0
for letra in Palabra:
for i in range(Tope):
if (i + Avance < Tope):
Posicion = i + Avance
else:
Posicion = abs((Tope - i) - Avance)
if letra == alfabetoMinus[i]:
Clave = Clave + alfabetoMinus[Posicion]
elif letra == alfabetoMayus[i]:
Clave = Clave + alfabetoMayus[Posicion]
return Clave

También podría gustarte