Implementación del Cifrado de Valla (Rail Fence Cipher) en Python

PythonPythonBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este proyecto, aprenderás cómo implementar el Cifrado de Valla (Rail Fence Cipher), un método de cifrado simple que reordena los caracteres de un texto para crear un texto cifrado.

👀 Vista previa

Thisatext.issample

🎯 Tareas

En este proyecto, aprenderás:

  • Cómo configurar un directorio de proyecto de Python y crear los archivos necesarios
  • Cómo implementar el algoritmo del Cifrado de Valla en Python
  • Cómo probar la función de cifrado implementada

🏆 Logros

Después de completar este proyecto, podrás:

  • Comprender los principios básicos del Cifrado de Valla
  • Implementar el algoritmo de cifrado del Cifrado de Valla en Python
  • Probar y validar la corrección de la función de cifrado implementada

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/FileHandlingGroup(["File Handling"]) python/BasicConceptsGroup -.-> python/strings("Strings") python/BasicConceptsGroup -.-> python/python_shell("Python Shell") python/DataStructuresGroup -.-> python/lists("Lists") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/FileHandlingGroup -.-> python/file_operations("File Operations") subgraph Lab Skills python/strings -.-> lab-302758{{"Implementación del Cifrado de Valla (Rail Fence Cipher) en Python"}} python/python_shell -.-> lab-302758{{"Implementación del Cifrado de Valla (Rail Fence Cipher) en Python"}} python/lists -.-> lab-302758{{"Implementación del Cifrado de Valla (Rail Fence Cipher) en Python"}} python/function_definition -.-> lab-302758{{"Implementación del Cifrado de Valla (Rail Fence Cipher) en Python"}} python/file_operations -.-> lab-302758{{"Implementación del Cifrado de Valla (Rail Fence Cipher) en Python"}} end

Implementar el Cifrado de Valla (Rail Fence Cipher)

En este paso, implementarás el algoritmo de cifrado del Cifrado de Valla en el archivo fence.py.

  1. Abre el archivo fence.py en un editor de texto.
  2. Agrega el siguiente código al archivo:
def rail_fence_cipher(text: str) -> str:
    """
    Encrypts the text using the Rail Fence Cipher method.

    Args:
        text (str): The text to be encrypted.

    Returns:
        str: The encrypted text.
    """
    if text is None or len(text.strip()) == 0:
        return None
    group = text.split()
    grouped_list = [group[i : i + 2] for i in range(0, len(group), 2)]

    first_part = [sublist[0] for sublist in grouped_list]
    second_part = [sublist[1] for sublist in grouped_list if len(sublist) > 1]

    encryption_text = "".join(first_part + second_part)
    return encryption_text


if __name__ == "__main__":
    print(rail_fence_cipher("This is a sample text."))
  1. Implementa la función rail_fence_cipher siguiendo estos pasos:

    • Verifica si el texto de entrada (text) es None o una cadena vacía. Si es así, devuelve None.
    • Divide el text en grupos de dos caracteres cada uno.
    • Extrae el primer carácter de cada grupo y guárdalos en una lista.
    • Extrae el segundo carácter de cada grupo y guárdalos en una lista.
    • Concatena las dos listas para formar el texto cifrado.
    • Devuelve el texto cifrado.
  2. Guarda el archivo fence.py.

Probar el Cifrado de Valla (Rail Fence Cipher)

En este paso, probarás el Cifrado de Valla implementado ejecutando el archivo fence.py.

  1. Abre una terminal y navega hasta el directorio del proyecto.
  2. Ejecuta el archivo fence.py:
python3 fence.py
  1. La salida debe ser el texto cifrado:
Thisatext.issample

¡Felicidades! Has implementado con éxito el Cifrado de Valla en Python.

✨ Revisar Solución y Practicar

Resumen

¡Felicidades! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.