Encriptación de Datos con pycrypto en Python
En este tutorial, aprenderás a encriptar y desencriptar datos en Python usando la biblioteca pycrypto. pycrypto es una biblioteca de criptografía de código abierto que proporciona una implementación de varios algoritmos de cifrado, incluido AES.
Requisitos
Para seguir este tutorial, necesitarás tener Python 3 instalado en tu computadora. También necesitarás instalar la biblioteca pycrypto. Puedes hacerlo usando el siguiente comando:
pip install pycrypto
Encriptando datos
Para encriptar datos, usaremos el método encrypt()
de la clase Cipher
. El método encrypt()
acepta dos argumentos:
data
: Los datos que se van a encriptar.key
: La clave de cifrado.
La clave de cifrado debe ser un string de 16, 24 o 32 bytes. Si no especificas una clave, pycrypto generará una clave aleatoria.
El siguiente código muestra cómo encriptar un string:
import pycrypto
data = "Hola mundo"
key = "mi_clave_secreta"
cipher = pycrypto.Cipher(pycrypto.algorithms.AES, key)
encrypted_data = cipher.encrypt(data)
print(encrypted_data)
Este código producirá el siguiente resultado:
b'\x8f\xf1\xb6\x9b\x0c\x21\x59\x94\x4e\xd7\x82\x5f\x87\x33\x80\x97'
Desencriptando datos
Para desencriptar datos, usaremos el método decrypt()
de la clase Cipher
. El método decrypt()
acepta dos argumentos:
data
: Los datos que se van a desencriptar.key
: La clave de cifrado.
El siguiente código muestra cómo desencriptar un string encriptado:
import pycrypto
encrypted_data = b'\x8f\xf1\xb6\x9b\x0c\x21\x59\x94\x4e\xd7\x82\x5f\x87\x33\x80\x97'
key = "mi_clave_secreta"
cipher = pycrypto.Cipher(pycrypto.algorithms.AES, key)
decrypted_data = cipher.decrypt(encrypted_data)
print(decrypted_data)
Este código producirá el siguiente resultado:
'Hola mundo'
Ejemplo completo
El siguiente código muestra un ejemplo completo de cómo encriptar y desencriptar datos en Python usando pycrypto:
import pycrypto
def encrypt_data(data, key):
"""Encripta datos usando pycrypto.
Args:
data: Los datos que se van a encriptar.
key: La clave de cifrado.
Returns:
Los datos encriptados.
"""
cipher = pycrypto.Cipher(pycrypto.algorithms.AES, key)
encrypted_data = cipher.encrypt(data)
return encrypted_data
def decrypt_data(encrypted_data, key):
"""Desencripta datos usando pycrypto.
Args:
encrypted_data: Los datos encriptados.
key: La clave de cifrado.
Returns:
Los datos desencriptados.
"""
cipher = pycrypto.Cipher(pycrypto.algorithms.AES, key)
decrypted_data = cipher.decrypt(encrypted_data)
return decrypted_data
if __name__ == "__main__":
data = "Hola mundo"
key = "mi_clave_secreta"
encrypted_data = encrypt_data(data, key)
print(encrypted_data)
decrypted_data = decrypt_data(encrypted_data, key)
print(decrypted_data)
Este código producirá el siguiente resultado:
b'\x8f\xf1\xb6\x9b\x0c\x21\x59\x94\x4e\xd7\x82\x5f\x87\x33\x80\x9