【问题标题】:Not able to decrypt file using openssl无法使用 openssl 解密文件
【发布时间】:2022-01-11 08:33:54
【问题描述】:

我正在尝试解密第 3 方提供给我的凭据文件,以便通过将其写入 .txt 文件来使用凭据。但不幸的是,我一直收到错误消息

我使用以下命令生成了公钥和私钥:

openssl genrsa -des3 -out id_rsa.pem 2048
openssl rsa -in id_rsa.pem -outform PEM -pubout -out id_rsa.pub.pem

我发送了公钥 id_rsa.pub.pem 以获取加密文件,并收到了 2 个使用我发送的公钥加密的文件 key.bin.enc 和 cred_file.enc

我能够使用如下所示的命令生成一个 key.bin 文件:

openssl rsautl -decrypt -inkey id_rsa.pem -in key.bin.enc -out key.bin

第一种方法:

openssl rsautl -decrypt -inkey id_rsa.pem -in key.bin.enc -out key.bin
Enter pass phrase for id_rsa.pem:
pavanvasan@Pavans-MacBook-Pro ~ % openssl enc -d -aes-256-cbc -in cred_file.enc -out cred_file.txt -pass file:./key.bin
*** WARNING : deprecated key derivation used.
Using -iter or -pbkdf2 would be better.
bad decrypt
4362464768:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:crypto/evp/evp_enc.c:610:

替代方法:

openssl enc -d -aes-256-cbc -md md5 -in cred_file.enc -out cred_file.txt 
enter aes-256-cbc decryption password:
* WARNING : deprecated key derivation used.
Using -iter or -pbkdf2 would be better.
bad decrypt
4551466496:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:crypto/evp/evp_enc.c:610:

我的 OpenSSL 版本是 OpenSSL 1.1.1m,而第 3 方提供商使用的是 OpenSSL 版本 1.1.1j

使用 -iter 或 -pbkdf2 会更好是什么意思?有没有办法解密 .enc 文件? 我在这里想念什么?请务必告诉我。

谢谢。

【问题讨论】:

  • 我假设如果您从第 3 方获取文件,那么您还应该从第 3 方获取使用这些文件所需的确切命令。
  • 这些是给出的命令,如下所示@Robert:[CMD_1 => openssl rsautl -decrypt -inkey id_rsa.pem -in key.bin.enc -out key.bin] [CMD_2 => openssl enc -d -aes-256-cbc -in cred_file.enc -out cred_file.txt -pass file:./key.bin] 第一个命令成功(CMD_1),我得到了key.bin文件,但错误是在执行第二个命令(CMD_2)期间被抛出
  • 然后将该包传达给第 3 方并请求正确的命令。
  • 我从第 3 方团队得到了这些命令。我把这些放进去是因为即使他们也不确定问题是什么,经过几次讨论
  • -iter-pbkdf2 使用 PBKDF2 作为密钥派生函数,而不是旧的默认值(-iter 可以用于指定 PBKDF2 和迭代次数)。由于 PBKDF2 更安全,如果不使用 PBKDF2,则默认输出此消息。如果 CMD2 正确,则不应用 PBKDF2,您可以忽略警告。检查您是否使用了正确的 cred_file.enc 和正确的 key.bin。也许数据只是不一致,即 key.bin.enc 不包含解密 cred_file.enc 所需的(加密)密钥。或者毕竟使用了 PBKDF2。这个要跟对方说清楚。

标签: encryption openssl


【解决方案1】:

当我根据反复试验使用 sha256 时,问题似乎得到了解决。 我使用的命令:openssl enc -d -aes-256-cbc -md sha256 -in cred_file.enc -out cred_file.txt

【讨论】:

  • 奇怪。实际上,OpenSSL 从 v1.1.0(之前的 MD5)版本开始默认使用 SHA256,所以这个设置不应该改变任何东西,至少对于 v1.1.1 来说不会。
猜你喜欢
  • 1970-01-01
  • 2015-10-06
  • 1970-01-01
  • 1970-01-01
  • 2016-04-15
  • 2021-05-03
  • 1970-01-01
  • 2018-12-25
  • 2012-12-04
相关资源
最近更新 更多