Está en la página 1de 9

Nombre: Johander Jose

Apellido: Daniel Carrasco


Matricula: 2019-8419
Tutor: Manuel Guerrero
(el mejor)
Prac�ca: Uso de Python – Algoritmo de sus�tución Julio Cesar
Introducción
En este tema vamos a ver un how to de como podemos utilizar el algoritmo de julio cesar
para cambiar un texto por algo que se puede decir que esta cifrado.
How to:
Lo primero que haremos es entrar a nuestra maquina Linux y verificamos la versión de
Python

Como vemos aquí tiene la versión 3.8.2, no se si es la ultima pero funciona, lo siguiente que
haremos es descargar los scripts para ejecutar el algoritmo.
En este caso no pude clonar el repositorio pero si cree el achivo .py y lo voy a ejecutar

Como vemos ahí arriba, y ahora entremos nuestro nombre y nuestro apellido como vemos
aquí y la dirección.
En este segundo paso tendré que investigar sobre otro scrpit su uso y sus variables y demás.
El programa comienza con un bucle while True para mantenerlo en ejecución hasta que se
elija la opción de salida.

La función Encryption(plaintext, key_val) realiza el cifrado de César en el texto plaintext


utilizando un valor de desplazamiento key_val. Recorre cada carácter del texto y realiza las
siguientes operaciones:

Convierte el carácter a minúscula utilizando new_special = special.lower().


Si el carácter es un espacio en blanco, se agrega un espacio en blanco al texto cifrado.
Si el carácter es una letra del alfabeto, se realiza el cifrado de César aplicando la fórmula
(ord(new_special) + key_val - 97) % 26 + 97. Esto desplaza el carácter en key_val posiciones
hacia la derecha en el alfabeto y lo agrega al texto cifrado.
Retorna el texto cifrado.
La función Decryption(ciphertext, key_val) realiza el descifrado del texto cifrado ciphertext
utilizando el valor de desplazamiento key_val. Realiza operaciones similares a la función
Encryption, pero utiliza la fórmula (ord(new_special) - key_val - 97) % 26 + 97 para realizar
el descifrado de César.
Dentro del bucle principal, se muestra un menú que permite al usuario elegir entre cifrar o
descifrar texto, o salir del programa.

Si se elige la opción de cifrado (1), se solicita al usuario que ingrese el texto sin formato
(plaintext) y el valor de desplazamiento (key). Luego, se llama a la función Encryption con
los valores ingresados y se muestra el texto cifrado resultante.

Si se elige la opción de descifrado (0), se solicita al usuario que ingrese el texto cifrado (csen)
y el valor de desplazamiento (key). Luego, se llama a la función Decryption con los valores
ingresados y se muestra el texto descifrado resultante.

El programa también muestra mensajes adicionales, como la eliminación de símbolos


especiales y números del texto cifrado/descifrado, y solicita al usuario si desea continuar con
otra operación o salir del programa.

Este es el código:
def Encryption(plaintext, key_val):
ciphertext = ''
for i in range(len(plaintext)):
special = plaintext[i]
new_special = special.lower()
if new_special == " ":
ciphertext += ' '
elif special.isalpha():
ciphertext += chr((ord(new_special) + key_val - 97) % 26 + 97)

return ciphertext

def Decryption(ciphertext, key_val):


plaintext = ''
for i in range(len(ciphertext)):
special = ciphertext[i]
new_special = special.lower()
if new_special == " ":
plaintext += ' '
elif special.isalpha():
plaintext += chr((ord(new_special) - key_val - 97) % 26 + 97)
return plaintext

while True:
print(
'Welcome to my Word..\n [*] Press 1 for Encryption \n [*] Press 0 for Decryption \n [*]
Press 01 to exit.. ')
print('Tip ---> Encryption/Decryption with shift value of your choice ! ')
choice = input('Insert Here : ')
if choice.isdigit():
if choice == '1':
sen = input('Insert the plaintext : ')
key = int(input('Insert shift value(Only integer values) : '))
print(50 * '-')
print(f'Your ciphertext ---> {Encryption(sen, key)}')
print(50 * '-')
print('Special symbols (!,# etc and numbers) are deleted..')
con = input('Shall we continue ? [Any Key/no]')
if con == 'no':
print('Exiting..')
break
else:
pass
elif choice == '0':
csen = input('Insert the ciphertext : ')
key = int(input('Insert shift value(Only integer values) : '))
print(50 * '-')
print(f'Your plaintext ---> {Decryption(csen, key)}')
print(50 * '-')
print('Special symbols (!,# etc and numbers) are deleted..')
con = input('Shall we continue ? [Any Key/no]')
if con == 'no':
print('Exiting..')
break
else:
pass
elif choice == '01':
print('Exiting..')
break
else:
print('Exception error .. \n'
'Please insert 0 or 1 ')

Ahora demostrare su uso


Como vemos tiene varias optiones el 1 es para encriptar el 0 es para desencriptar y el 01 para
salir elegiremos el 1 y luego el 0

Como vemos aquí podemos elegir el valor de hacia delante que queremos que tome yo le
puse 3 porque ese es el default pero se puede usar cualquiera, ahora eso vamos a
desencriptarlo.
Y ya esto seria todo.

Gracias!

También podría gustarte