Buscar en la base de conocimientos
< Todos los temas
Imprimir

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.

Sidebar