无法使用 openssl 在 Mac 上解密文件

无法使用 openssl 在 Mac 上解密文件

这是我在 2017 年左右对 Mac 上的文件进行加密的命令。我不知道我的 Mac 当时是否运行 High Sierra,因为在更新方面我通常会迟到,直到我完全明白。必须这样做。

我在 2018 年能够解密这些文件,但由于某种原因我无法再这样做了。

tar cz folder_to_encrypt | openssl enc -aes-256-cbc -e > out.tar.gz.enc

这就是我现在用来解密的,使用运行 Catalina 的同一台计算机

openssl enc -aes-256-cbc -d -in out.tar.gz.enc | tar xz

我收到的错误消息是:

bad decrypt
4435975788:error:06FFF064:digital envelope routines:CRYPTO_internal:bad decrypt:/AppleInternal/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-47.140.1/libressl-2.8/crypto/evp/evp_enc.c:521:
tar: Error opening archive: Unrecognized archive format

我读过一些关于不同版本的 openssl 和摘要等的文章。我下载了旧版本的 LibreSSL 2.3.6;它仍然失败,但错误代码略有不同(06065064):

bad decrypt
4606180972:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:/Users/joe/Downloads/temp-libressl/libressl-2.3.6/crypto/evp/evp_enc.c:529:
tar: Error opening archive: Unrecognized archive format

答案1

有很多事情发生了变化。但是,根据 John 关于 MD5 的建议以及我自己的测试,我认为您只需添加-md md5解压步骤即可。

我测试了使用 openssl 1.0.1t 使用您的命令加密文件。然后尝试用1.1.1d解密。它失败了

*** 警告:使用已弃用的密钥派生。使用 -iter 或 -pbkdf2 会更好。解密错误130692476720256:错误:06065064:数字信封例程:EVP_DecryptFinal_ex:解密错误:../crypto/evp/evp_enc.c:570:

因此,它检测到存在已弃用的密钥派生,但无法自动应用它(或者它正在考虑它,但还没有其他改变的事情)。这个新版本有-md一个前一个版本中没有的参数:

   -md digest
       Use the specified digest to create the key from the passphrase.
       The default algorithm is sha-256.

根据约翰对 md5 使用的提示,我这样做了openssl enc -aes-256-cbc -d -md md5 -in file,并且它能够正确解密内容(尽管它仍然会产生上述有关已弃用的密钥派生的警告)。

相关内容