base64
não é tão exigente com a nova linha:
echo -n 0y14OkIoAkNcGyXft6qZ8w== | base64 -d | openssl enc -d -aes-128-ecb -K E5E9FA1BA31ECD1AE84F75CAAA474F3A -nosalt
Meu palpite é que você acertou um caso de canto em openssl
.
Eu criptografei alguns dados:
echo -n aaaa | openssl enc -aes-128-ecb -K E5E9FA1BA31ECD1AE84F75CAAA474F3A -nosalt -out o
Isso decodifica corretamente:
base64 o | openssl enc -d -aes-128-ecb -K E5E9FA1BA31ECD1AE84F75CAAA474F3A -nosalt -base64
mas isso falha:
echo -n 0y14OkIoAkNcGyXft6qZ8w== | openssl enc -d -aes-128-ecb -K E5E9FA1BA31ECD1AE84F75CAAA474F3A -nosalt -base64
bad decrypt
140357156597784:error:0606506D:digital envelope routines:EVP_DecryptFinal_ex:wrong final block length:evp_enc.c:518:
base64 o
retorna 0y14OkIoAkNcGyXft6qZ8w==
.
Por que falha o segundo método?
base64
não é tão exigente com a nova linha:
echo -n 0y14OkIoAkNcGyXft6qZ8w== | base64 -d | openssl enc -d -aes-128-ecb -K E5E9FA1BA31ECD1AE84F75CAAA474F3A -nosalt
Meu palpite é que você acertou um caso de canto em openssl
.