Encriptar y desencriptar una cadena en python
Para encriptar y desencriptar una cadena en Python, se pueden utilizar diferentes algoritmos de cifrado, como AES, DES, Blowfish, entre otros. A continuación, se muestra un ejemplo de cómo se podría encriptar y desencriptar una cadena utilizando el algoritmo AES:
from Crypto.Cipher import AES import base64 # Función para encriptar una cadena con AES def encriptar(cadena, clave): mensaje = cadena.encode('utf-8') clave = clave.encode('utf-8') iv = b'1234567890123456' cifrado = AES.new(clave, AES.MODE_CFB, iv) mensaje_cifrado = cifrado.encrypt(mensaje) return base64.b64encode(mensaje_cifrado).decode('utf-8') # Función para desencriptar una cadena con AES def desencriptar(cadena_cifrada, clave): mensaje_cifrado = base64.b64decode(cadena_cifrada) clave = clave.encode('utf-8') iv = b'1234567890123456' descifrado = AES.new(clave, AES.MODE_CFB, iv) mensaje_descifrado = descifrado.decrypt(mensaje_cifrado) return mensaje_descifrado.decode('utf-8')
En este ejemplo, se utilizan las bibliotecas “Crypto” y “base64” de Python para encriptar y desencriptar una cadena utilizando el algoritmo AES. La función “encriptar” toma dos parámetros: la cadena que se desea encriptar y la clave de cifrado. La función convierte la cadena y la clave a bytes, crea un vector de inicialización (IV) y utiliza el algoritmo AES para cifrar el mensaje. Luego, codifica el mensaje cifrado en base64 y lo devuelve como una cadena.
La función “desencriptar” toma dos parámetros: la cadena cifrada y la clave de cifrado. La función decodifica la cadena cifrada en base64, convierte la clave a bytes, crea un vector de inicialización (IV) y utiliza el algoritmo AES para descifrar el mensaje cifrado. Luego, devuelve el mensaje descifrado como una cadena.
Para utilizar estas funciones, se puede llamar a la función “encriptar” con la cadena y la clave de cifrado deseadas para obtener la cadena cifrada. Luego, se puede llamar a la función “desencriptar” con la cadena cifrada y la misma clave de cifrado para obtener la cadena original descifrada. Por ejemplo:
cadena_original = "Hola mundo" clave_cifrado = "1234567890123456" cadena_cifrada = encriptar(cadena_original, clave_cifrado) print("Cadena cifrada:", cadena_cifrada) cadena_descifrada = desencriptar(cadena_cifrada, clave_cifrado) print("Cadena descifrada:", cadena_descifrada)
Este ejemplo encripta la cadena “Hola mundo” utilizando la clave de cifrado “1234567890123456” y luego la desencripta utilizando la misma clave. La salida sería algo como:
Cadena cifrada: X1iK9oVJiUJW6L6zL7V6 Cadena descifrada: Hola mundo
Es importante tener en cuenta que la seguridad del cifrado depende de la fortaleza de la clave utilizada. Para una mayor seguridad, se recomienda utilizar claves aleatorias y complejas.