16 - Práctica 3: criptografía con Python

Lección 16 del curso Python Nivel Intermedio.

Introducción

En la lección anterior vimos las principales funciones y métodos para el procesamiento de sets, con lo cual ya estamos listos para poner en práctica las herramientas aprendidas hasta el momento.

En esta práctica implementaremos un programa capaz de encriptar o cifrar un archivo de texto, para posteriormente decodificarlo, usando varios de los conceptos aprendidos hasta el momento, en especial el uso de diccionarios y la lectura y almacenamiento de archivos.

Suscríbete y accede al set de datos, código fuente y video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

El problema a resolver

Dado un texto implementar un programa que tome cada palabra y la codifique con un número. Además implementar el proceso inverso, la decodificación, es decir tomar cada número y convertirlo a una palabra.

Requerimientos

  1. El programa debe leer el texto original a partir de un archivo .txt
  2. Una vez leído el texto, el programa debe crear un diccionario (word_to_num) que codifique cada palabra como un número
  3. El número asignado a cada palabra debe estar asociado a su frecuencia: palabras comúnes deben ser codificadas con menos dígitos, palabras poco comúnes serán codificadas con más dígitos.
  4. Crear un diccionario inverso (num_to_word) que permita decodificar cada palabra
  5. Codificar el texto original usando el diccionario word_to_num y almacenar el resultado en un archivo .txt
  6. Decodificar el texto codificado usando el diccionario num_to_word y almacenar el resultado en un archivo .txt

Funciones auxiliares

Implementaremos 4 funciones auxiliares:

Codificación

Leeremos el archivo original (quijote.txt) línea por línea, y simultáneamente codificaremos palabra por palabra usando word_to_num, con lo cual obtendremos el archivo quijote_codificado.txt que corresponderá al archivo original encriptado.

Decodificación

Y finalmente, leeremos el archivo codificado (quijote_codificado.txt), y lo decodificaremos palabra por palabra usando num_to_word, y así obtendremos el archivo con el texto decodificado (quijote_decodificado.txt) que será exactamente igual al archivo original (quijote.txt)

Recuerda suscribirte para acceder al set de datos, código fuente y video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Conclusión

Perfecto, con este ejemplo de criptografía ya hemos puesto en práctica los diccionarios y herramientas como la lectura y almacenamiento de archivos para la solución de un problema real.

Así que ya estamos listos para entrar a la última sección del curso, en donde veremos herramientas para el procesamiento avanzado de strings.

En particular, en la próxima lección comenzaremos viendo varios métodos para el procesamiento avanzado de strings.

Ver todas las lecciones de este curso