openssl 解码不适用于 echo

openssl 解码不适用于 echo

我加密了一些数据:

echo -n aaaa | openssl enc -aes-128-ecb -K E5E9FA1BA31ECD1AE84F75CAAA474F3A -nosalt -out o

这可以正确解码:

base64 o | openssl enc -d -aes-128-ecb -K E5E9FA1BA31ECD1AE84F75CAAA474F3A -nosalt -base64

但这失败了:

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返回0y14OkIoAkNcGyXft6qZ8w==

为什么第二种方法会失败呢?

答案1

base64对换行符不那么挑剔:

echo -n 0y14OkIoAkNcGyXft6qZ8w== | base64 -d | openssl enc -d -aes-128-ecb -K E5E9FA1BA31ECD1AE84F75CAAA474F3A -nosalt

我的猜测是你遇到了一个极端的情况openssl

相关内容