Ubuntu 16.04でopenssl
で暗号化した多数のテキストファイルを復号化できません。常にこのエラーメッセージが表示されます。
$ openssl des3 -d < ~/ISRIC/credentials.txt.des3.old > ~/temp/credentials.txt.old.2
enter des-ede3-cbc decryption password:
bad decrypt
139771261990464:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:../crypto/evp/evp_enc.c:536:
パスワードが正しいと確信しています。何が問題ですか?
openssl
で使用されるパスワードベースの暗号化アルゴリズムは、バージョン1.0.2のMD5(Ubuntu 16.04に同梱)からバージョン1.1.0(Ubuntu 18.04)のSHA256に変更されました。そのため、Ubuntu 16.04で暗号化されたファイルは、Ubuntu 18.04で復号化できません。 解決策 は、以前のバージョンのopenssl
をインストールし、ファイルを復号化して、新しいバージョンで再度暗号化することです。ステップバイステップ:
古いバージョンのopenssl
をダウンロードすることから始めます(これはAMD64ビルドです。他のビルドのチェックは packages.ubuntu.com ):
wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl/openssl_1.0.2g-1ubuntu13.6_AMD64.deb
dpkg
を使用してパッケージを直接インストールします。これにより、新しいバージョンが無効になります。
$ Sudo dpkg -i openssl_1.0.2g-1ubuntu13.6_AMD64.deb
適切なバージョンを使用していることを確認してください。
$ openssl version
OpenSSL 1.0.2g 1 Mar 2016 (Library: OpenSSL 1.0.2n 7 Dec 2017)
そして、ファイルを解読します:
$ openssl des3 -d < secret.des3 > secret.txt
次に、最新のopensslビルドをインストールします。apt
はオプションです:
$ Sudo apt install openssl
最新バージョンであることを確認します。
$ openssl version
OpenSSL 1.1.0g 2 Nov 2017
そして、最新バージョンでファイルを再度暗号化します。
$ openssl des3 < secret.txt > secret.des3
最後に、最初にダウンロードした.deb
ファイルを削除します。
$ rm openssl_1.0.2g-1ubuntu13.6_AMD64.deb