You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
1.2 KiB
33 lines
1.2 KiB
from Crypto.Cipher import AES
|
|
from Crypto.Random import get_random_bytes
|
|
|
|
key = get_random_bytes(32) # Use a stored / generated key
|
|
MensajeOriginal = 'Pureba de encriptación con AES+key+iv' # This is your data
|
|
print ("Mensaje original: ", MensajeOriginal)
|
|
|
|
#Convertir un string a un objeto de bytes codificado UNICODE
|
|
data = MensajeOriginal.encode('utf-8')
|
|
|
|
# Encriptación
|
|
cipher_encrypt = AES.new(key, AES.MODE_CFB)
|
|
BytesEncriptados = cipher_encrypt.encrypt(data)
|
|
|
|
# Nuestro datos y vector de inicialización
|
|
iv = cipher_encrypt.iv
|
|
MensajeEncriptado = BytesEncriptados
|
|
print ("Mensaje encriptado: ", MensajeEncriptado)
|
|
print ("Vector de inicialización: ", iv)
|
|
|
|
|
|
# Desencriptación
|
|
cipher_decrypt = AES.new(key, AES.MODE_CFB, iv=iv)
|
|
BytesDesncriptados = cipher_decrypt.decrypt(MensajeEncriptado)
|
|
|
|
# Conversión de bytes a string
|
|
MensajeDesencriptado = BytesDesncriptados.decode('utf-8')
|
|
print ("Mensaje desencriptado: ", MensajeDesencriptado)
|
|
|
|
#probamos coindidencia original-encriptado-desencriptado
|
|
assert MensajeOriginal == MensajeDesencriptado, 'El mensaje original no coincide con la encrptación-desencriptación'
|
|
|
|
#https://nitratine.net/blog/post/python-encryption-and-decryption-with-pycryptodome/ |