【问题标题】:Decrypt a text with OpenSSL using key and salt only仅使用密钥和盐使用 OpenSSL 解密文本
【发布时间】:2020-05-14 15:43:41
【问题描述】:

我想在我的 MacOS 的命令行中使用 32 个字符的密钥和盐来解密文本。我已经使用程序在 Windows 中对其进行了加密。但是,每当我尝试从命令行解密它时,我都无法得到一个错误。

echo -n PuYNZO+SLqFo6g97gxKr2uAPRUph/sZgaJ3T5YIBPIc= | openssl enc -d -a -aes-256-cbc -K TheTestKeyUsedIs32CharactersLong -S 53616c7455736564 -iv 0 -p
hex string is too short, padding with zero bytes to length
hex string is too short, padding with zero bytes to length
non-hex digit
invalid hex key value

当我尝试加密时

100836

在 MacOS 中,它给了我完全不同的字符串。

U2FsdGVkX19TYWx0VXNlZA4AWDWo5nzi8p5pYyAeUMg=

使用以下命令:

openssl enc -aes-256-cbc -a -S 53616c7455736564 -iter 5 -k TheTestKeyUsedIs32CharactersLong -in input.txt -out openssl_output.txt

来自我在 Windows 中使用的应用程序

100836 正在转换为 PuYNZO+SLqFo6g97gxKr2uAPRUph/sZgaJ3T5YIBPIc=

  • 我的 salt 文本是 SaltUsed
  • 我的 32 位字符密钥是 TheTestKeyUsedIs32CharactersLong
  • 输入是 PuYNZO+SLqFo6g97gxKr2uAPRUph/sZgaJ3T5YIBPIc=
  • 应该在100836中解密

但是,结果完全出乎意料。

我也尝试了一个 java 程序来解密它,但是我得到了其他字符串,所以我想先用命令行更正它,然后再跳到代码中。

我也尝试了十六进制数字的密钥,但响应仍然不正确并且不符合预期。

【问题讨论】:

  • 请注意您提供的盐是 8 字节十六进制编码值。我相信密钥也需要进行十六进制编码
  • 我也试过了,加密的文本是 U2FsdGVkX19TYWx0VXNlZFhz3AhDtVqRkFhh/MKT6Pg=
  • 嘿,你在加密时使用的是“0”IV吗?
  • 是的,因为我没有定义任何索引向量

标签: encryption openssl cryptography aes lets-encrypt


【解决方案1】:

@Wasif 和我花了一些时间在聊天中进行调试,最后认为这很可能是 Windows 上的 OpenSSL 1.1.1.d 和 macOS 上的 OpenSSL 1.1.1.b 之间的兼容性问题。

我们经历了许多测试和排列,使用十六进制的 (Key, IV) 元组,使用密码,有和没有盐,最终我们的测试归结为一个简单的检查。

在 Windows 上使用 openssl enc -a -aes-256-cbc -pass pass:MYPASSWORD -p -in input.txt 我们得到:

salt=E70092FEBA619144 
key=29631452F8C259DFE6FD8E9372EC4B20392395F36B7A0B11769CEBEA987E90A0 
iv =93BF2E94462A43B23EF585C0F4B3F1A8 
U2FsdGVkX1/nAJL+umGRRGi3ybIPFXf7qrgov7SyXnI=

在我们得到的 Mac 上使用openssl aes-256-cbc -d -a -pass pass:MYPASSWORD -in cipherText.txt (which contains 'U2FsdGVkX1/nAJL+umGRRGi3ybIPFXf7qrgov7SyXnI='

4593573484:error:06FFF064:digital envelope routines:CRYPTO_internal:bad decrypt

尽管这个简单的测试失败了,Mac 和 Windows 盒子还是成功地在本地加密和解密。

很奇怪,但这看起来像是版本不兼容。

【讨论】:

    【解决方案2】:

    尝试指定摘要算法:

    默认摘要已在不同版本之间更改。

    How to resolve the "EVP_DecryptFInal_ex: bad decrypt" during file decryption

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-07
      • 1970-01-01
      • 2014-10-24
      • 2012-04-07
      • 1970-01-01
      • 2017-08-02
      • 2020-02-28
      • 1970-01-01
      相关资源
      最近更新 更多