一部のデータを暗号化しました。
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==
。
2番目の方法が失敗するのはなぜですか?
答え1
base64
改行についてあまりトリッキーに転がしてください。
echo -n 0y14OkIoAkNcGyXft6qZ8w== | base64 -d | openssl enc -d -aes-128-ecb -K E5E9FA1BA31ECD1AE84F75CAAA474F3A -nosalt
私の考えでは、あなたは極端な状況に直面していると思いますopenssl
。