Implementación de la Encriptación Código Claro

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 a implementar un algoritmo simple de encriptación y desencriptación llamado "Encriptación Código Claro". Este método de encriptación se utilizó en el sistema de comunicación por telegrafo de China durante la dinastía Qing tardía.

👀 Vista previa

## Ejemplo 1
numb = 1530; encryption_text = "0383"
## Ejemplo 2
numb = 0; encryption_text = "9853"
## Ejemplo 3
numb = 12345; encryption_text = None

🎯 Tareas

En este proyecto, aprenderás:

  • Cómo entender el método de encriptación y sus principios fundamentales
  • Cómo implementar la función plain_code_encryption(numb) para realizar la encriptación
  • Cómo probar la función de encriptación con diferentes entradas
  • Cómo manejar la entrada del usuario y llamar a la función de encriptación

🏆 Logros

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

  • Explicar el método de "Encriptación Código Claro" y su contexto histórico
  • Implementar un algoritmo básico de encriptación y desencriptación utilizando Python
  • Probar y validar la función de encriptación con diferentes escenarios de entrada
  • Integrar la entrada y salida del usuario en el script de encriptación

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python/BasicConceptsGroup -.-> python/numeric_types("Numeric Types") python/BasicConceptsGroup -.-> python/strings("Strings") python/BasicConceptsGroup -.-> python/type_conversion("Type Conversion") python/BasicConceptsGroup -.-> python/python_shell("Python Shell") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/FunctionsGroup -.-> python/arguments_return("Arguments and Return Values") python/PythonStandardLibraryGroup -.-> python/math_random("Math and Random") subgraph Lab Skills python/numeric_types -.-> lab-302703{{"Implementación de la Encriptación Código Claro"}} python/strings -.-> lab-302703{{"Implementación de la Encriptación Código Claro"}} python/type_conversion -.-> lab-302703{{"Implementación de la Encriptación Código Claro"}} python/python_shell -.-> lab-302703{{"Implementación de la Encriptación Código Claro"}} python/conditional_statements -.-> lab-302703{{"Implementación de la Encriptación Código Claro"}} python/function_definition -.-> lab-302703{{"Implementación de la Encriptación Código Claro"}} python/arguments_return -.-> lab-302703{{"Implementación de la Encriptación Código Claro"}} python/math_random -.-> lab-302703{{"Implementación de la Encriptación Código Claro"}} end

Entender el Método de Encriptación

En este paso, aprenderás sobre el método de encriptación utilizado en el proyecto de "Encriptación Código Claro".

El método de encriptación funciona de la siguiente manera:

  1. Los cuatro dígitos del código claro se suman respectivamente a los cuatro dígitos de la clave de encriptación.
  2. Para cada suma de dígitos, si la suma es mayor o igual a 10, se omite 10 y solo se conserva el dígito en la unidad.
  3. Al desencriptar, se utiliza la contraseña restada por los cuatro dígitos de la clave de desencriptación para obtener el código claro y encontrar el texto correspondiente.

Por ejemplo, digamos que el código claro es 1530 y la clave de encriptación es 9853.

  1. Sumar el primer dígito: 1 + 9 = 10, considerar 10 como 0.
  2. Sumar el segundo dígito: 5 + 8 = 13, omitir 10 y conservar 3.
  3. Sumar el tercer dígito: 3 + 5 = 8.
  4. Sumar el cuarto dígito (10 + 3 = 13, omitir 10 y conservar 3).

El texto encriptado final es "0383".

Implementar la función plain_code_encryption(numb)

En este paso, implementarás la función plain_code_encryption(numb) en el archivo plain_code.py.

  1. Abre el archivo plain_code.py en tu editor de código.

  2. Localiza la función plain_code_encryption(numb).

  3. Implementa la función para realizar las siguientes tareas:

    • Ingresa un número arbitrario entre 0 y 9999 (incluyendo 0 y 9999), súmale 9853 y obtén un número de 4 dígitos (en formato str) después de la suma, y devuélvelo.
    • Si el número de entrada tiene menos de 4 dígitos, rellena las posiciones faltantes con 0. Por ejemplo, si el número de entrada es 32, debe considerarse como 0032.
    • Suma los números en la misma posición. Si la suma es mayor o igual a 10, omite 10 y solo conserva el dígito en la unidad.
    • Si el número de entrada no está entre 0 y 9999, devuelve None.

Aquí está el código completado de la función plain_code_encryption(numb):

def plain_code_encryption(numb: int) -> str:
    if numb < 0 or numb > 9999:
        return None

    numb_str = str(numb).zfill(4)
    key_str = "9853"
    encryption_text = "".join(
        str((int(n) + int(k)) % 10) for n, k in zip(numb_str, key_str)
    )

    return encryption_text

Prueba la función plain_code_encryption(numb)

En este paso, probarás la función plain_code_encryption(numb) con los ejemplos proporcionados.

  1. Abre el archivo plain_code.py en tu editor de código.
  2. Agrega el siguiente código al final del archivo:
if __name__ == "__main__":
    print(plain_code_encryption(1530))  ## Output: "0383"
    print(plain_code_encryption(0))     ## Output: "9853"
    print(plain_code_encryption(12345)) ## Output: None
  1. Guarda el archivo y ejecuta el script usando el comando python3 plain_code.py.
  2. Verifica que la salida coincida con los resultados esperados.

Manejar la entrada del usuario

En este paso, modificarás el script para aceptar la entrada del usuario y llamar a la función plain_code_encryption(numb) con el número proporcionado por el usuario.

  1. Abre el archivo plain_code.py en tu editor de código.
  2. Localiza el código que agregaste en el paso anterior y reemplázalo con lo siguiente:
if __name__ == "__main__":
    txt = int(input())
    print(plain_code_encryption(txt))
  1. Guarda el archivo y ejecuta el script usando el comando python3 plain_code.py.
  2. Cuando se te solicite, ingresa un número entre 0 y 9999, y el script imprimirá el texto encriptado.

¡Felicitaciones! Has completado el proyecto de "Encriptación Código Claro". Has aprendido cómo implementar el método de encriptación y probarlo con diferentes entradas.

✨ Revisar Solución y Practicar

Resumen

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