Introducción
En este proyecto, aprenderás cómo implementar el Cifrado César, una técnica de encriptación simple y ampliamente conocida. El Cifrado César utiliza un método de sustitución para reemplazar los caracteres ingleses de un mensaje con el carácter N posiciones más adelante o atrás en la secuencia del alfabeto.
👀 Vista previa
## Ejemplo 1
text = "python"; encryption_text = "ravjqp"
## Ejemplo 2
text = "pyThon"; encryption_text = "raVjqp"
## Ejemplo 3
text = "Python31"; encryption_text = "Ravjqp31"
## Ejemplo 4
text = None; encryption_text = None
🎯 Tareas
En este proyecto, aprenderás:
- Cómo configurar el entorno del proyecto y crear los archivos necesarios
- Cómo implementar la función de encriptación César para desplazar cada carácter inglés de una cadena 2 posiciones hacia la derecha
- Cómo manejar diferentes tipos de entrada, incluyendo caracteres ingleses, caracteres no ingleses y valores nulos
- Cómo probar la función de encriptación César con varios ejemplos de entrada
🏆 Logros
Después de completar este proyecto, podrás:
- Comprender los principios básicos de la técnica de encriptación Cifrado César
- Implementar una función de encriptación César en Python sin utilizar ninguna librería estándar o de terceros
- Desarrollar habilidades en manipulación de cadenas, codificación de caracteres y lógica condicional
- Probar tu código para asegurarte de que cumpla con los requisitos del proyecto
Implementar el Cifrado César
En este paso, implementarás la función de cifrado César.
Abre el archivo
caesar_cipher.py.Modifica la función
caesar_encryption(text)para lograr la funcionalidad deseada:- Ingresa una cadena y desplaza cada carácter inglés de la cadena 2 posiciones hacia la derecha.
- Solo convierte los caracteres ingleses de media anchura, deja el resto del contenido sin cambios.
- El caso de los caracteres debe permanecer sin cambios, por ejemplo, A se convertirá en C, y b se convertirá en d.
Reemplaza el comentario
"""TODO"""con el siguiente código:
def caesar_encryption(text: str) -> str:
if text is None:
return None
encryption_text = ""
for char in text:
if char.isalpha() and char.isascii():
if char.islower():
encryption_text += chr((ord(char) - ord("a") + 2) % 26 + ord("a"))
else:
encryption_text += chr((ord(char) - ord("A") + 2) % 26 + ord("A"))
else:
encryption_text += char
return encryption_text
Este código implementa el algoritmo de cifrado César tal como se describe en los requisitos del proyecto.
Probar el Cifrado César
En este paso, probarás la función de cifrado César con algunos ejemplos de entrada.
- Agrega el siguiente código al final del archivo
caesar_cipher.py:
if __name__ == "__main__":
test_input_text = input()
print(caesar_encryption(test_input_text))
- Guarda el archivo
caesar_cipher.py. - Abre una terminal y navega hasta el directorio
/home/labex/project. - Ejecuta el script
caesar_cipher.pyusando el siguiente comando:
python3 caesar_cipher.py
- Ingresa algunos textos de entrada de prueba y observa la salida encriptada.
Verificar los Requisitos
En este paso, verificarás que tu implementación cumpla con los requisitos del proyecto.
Revisa los requisitos del proyecto y asegúrate de que tu función
caesar_encryption(text):- Tome una cadena de entrada y desplace cada carácter inglés de la cadena 2 posiciones hacia la derecha.
- Solo convierta los caracteres ingleses de media anchura, dejando el resto del contenido sin cambios.
- Preserve el caso de los caracteres, por ejemplo, A se convierte en C, y b se convierte en d.
Prueba tu función con los ejemplos de referencia proporcionados:
## Ejemplo 1
text = "python"; encryption_text = "ravjqp"
## Ejemplo 2
text = "pyThon"; encryption_text = "raVjqp"
## Ejemplo 3
text = "Python31"; encryption_text = "Ravjqp31"
## Ejemplo 4
text = None; encryption_text = None
- Asegúrate de que tu función maneje correctamente todos los casos de prueba.
Felicitaciones ¡Has completado el proyecto del Cifrado César! Si tienes alguna pregunta o necesitas ayuda adicional, no dudes en preguntar.
Resumen
Felicitaciones ¡Has completado este proyecto! Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.



