Logo Reaper

Cifrado de datos con cryptography

¿Qué es el cifrado?

El cifrado es el proceso de convertir información legible en un formato ininteligible, mediante el uso de algoritmos matemáticos y claves de cifrado.

Este proceso se utiliza para garantizar la privacidad y seguridad de los datos durante la transmisión o almacenamiento. El objetivo principal del cifrado es proteger la confidencialidad de la información, impidiendo que personas no autorizadas puedan acceder o entender el contenido de los mensajes.

Para lograr esto, se utiliza una clave de cifrado, que es un valor secreto o conocido solo por las partes autorizadas, que se utiliza para transformar el texto original en un formato incomprensible.

El cifrado se utiliza ampliamente en diversas áreas, como las comunicaciones en línea, el almacenamiento de datos sensibles, las transacciones financieras y la seguridad de la información en general. Además, es fundamental en el ámbito de la criptografía, que juega un papel crucial en la protección de la privacidad y la seguridad de la información en la era digital.

Para los interesados en profundizar sobre la historia de la criptografía y los distintos sistemas de cifrado, les dejo un libro sobre el tema:

Descargar el libro Los códigos secretos de Simon Singh

¿Que es un hash?

El hash es una cadena de longitud fija que nace a partir de un proceso matemático que toma una entrada de datos, como un archivo, un mensaje o una cadena de caracteres. El objetivo principal de una función hash es convertir los datos de manera eficiente y generar un valor único que represente la entrada original.

Una característica importante de una función hash es que es unidireccional, lo que significa que es fácil calcular el hash a partir de los datos de entrada, pero es computacionalmente difícil o prácticamente imposible obtener los datos de entrada a partir del hash. Esto proporciona una forma de verificar la integridad de los datos, ya que si incluso un solo bit de los datos originales se modifica, el hash resultante será completamente diferente.

Las funciones hash se utilizan en una amplia variedad de aplicaciones, como la verificación de integridad de archivos, la protección de contraseñas y la indexación de datos. Algunos algoritmos hash comunes son MD5, SHA-256, entre otros.

Audio demostración

Debajo del reproductor se encuentran los procesos escritos para poder seguir sin problemas los pasos realizados en el audio

Instalación de la librería

En el símbolo del sistema (CMD), tipear y ejecutar el siguiente comando.

pip install cryptography

Importación, creación de la clave e instanciación del objeto Fernet

from cryptography.fernet import Fernet

clave= Fernet.generate_key()
fernet= Fernet(clave)

Leer archivo, cifrar y guardar el contenido cifrado al igual que la clave

with open('dumas.txt', 'rb') as file:
    c= file.read()

c_c= fernet.encrypt(c)

with open('dumas.txt', 'wb') as file:
    file.write(c_c)

with open('key', 'wb') as f:
    f.write(clave)

Leer la clave, desencriptar el texto y guardarlo en el archivo

with open('dumas.txt', 'rb') as file:
    contenido_cifrado= file.read()

with open('key', 'rb') as k:
    clave= k.read()

cipher= Fernet(clave)

contenido_descifrado= cipher.decrypt(contenido_cifrado)

with open('dumas.txt', 'wb') as file:
    file.write(contenido_descifrado)

Librerías de hashing y codificación en base64

from hashlib import sha256
from base64 import b64encode

objeto_hash= sha256('MiClave'.encode())
hash= b64encode(objeto_hash.digest())

Instancia del objeto Fernet basado en el hash anterior

fernet= Fernet(hash)