Codificar y Decodificar en Rijndael / AES
Python
Publicado el 10 de Febrero del 2016 por Xve (294 códigos)
6.610 visualizaciones desde el 10 de Febrero del 2016
Este código de ejemplo muestra como codificar un texto con Rijndael / AES a 128 bits





(2)














from Crypto.Cipher import AESimport base64
import os
key = "\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15\x16"
iv = "\x01\x02\x03\x04\x05\x06\x07\x08\x09\x10\x11\x12\x13\x14\x15\x16"
replace_plus = "BIN00101011BIN"
BLOCK_SIZE = 16pad = lambda s: s + (BLOCK_SIZE - len(s) % BLOCK_SIZE) \
* chr(BLOCK_SIZE - len(s) % BLOCK_SIZE)
unpad = lambda s : s[0:-ord(s[-1])]
# encrypta con AES y codifica con base64
def EncodeAES(s):
c = AES.new(key, AES.MODE_CBC, iv)
s = pad(s)
s = c.encrypt(s)
s = base64.b64encode(s)
return s.replace("+", replace_plus)
def DecodeAES(enc):
c = AES.new(key, AES.MODE_CBC, iv)
enc = enc.replace(replace_plus, "+")
enc = base64.b64decode(enc)
enc = c.decrypt(enc)
return unpad(enc)
texto = "la casa azul"
# encriptar
encoded = EncodeAES(texto)
print 'Cadena encriptada:', encoded
# desencriptar
decoded = DecodeAES(encoded)
print 'Cadena desencriptada:', decoded
Comentarios sobre la versión: Versión 1.0 (2)