自从更换操作系统(从 Linux 到 Windows)后,使用 OpenSSL 解码加密文件就不起作用了

自从更换操作系统(从 Linux 到 Windows)后,使用 OpenSSL 解码加密文件就不起作用了

我正在编写一个小脚本,用于加密要发送给我们其中一个供应商的文件。

工作流程如下:

  1. 我们创建了一个密钥,并使用他们提供的公钥进行非对称加密
  2. 使用加密密钥,我们对需要发送的文件进行对称加密
  3. 然后我们压缩两个文件(密钥 + 文件)
  4. 收到后,他们会解压文件
  5. 他们使用私钥解密密钥
  6. 然后他们使用解密的密钥解密文件

以下是使用的命令:

在 Linux 上

  • openssl rand -base64 30 > my.key
  • chmod 700 my.key
  • openssl enc -aes-256-cbc -in myfile.zip -out myfile.bin -kfile my.key
  • openssl rsautl -encrypt -pubin -inkey supplier_key.pem -in my.key -out encrypted.key

在 Windows 上

  • openssl\bin\openssl.exe rand -base64 30 > my.key
  • openssl\bin\openssl.exe enc -aes-256-cbc -in myfile.zip -out myfile.bin -kfile my.key
  • openssl\bin\openssl.exe rsautl -encrypt -pubin -inkey supplier_key.pem -in my.key -out encrypted.key

我们必须这样做,因为文件太大,无法进行非对称加密。

为此,我首先在 cygwin 环境中,它运行完美。但现在,我必须让它在完整的 Windows 环境中运行。我已经修改了脚本,并下载了适用于 Windows 的 openssl 程序。

但是,当我们的供应商收到文件时,步骤 6) 不起作用 :/

他们有这个错误:

> bad decrypt 6566:error:06065064:digital envelope
> routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:325:

我没有对工作方式做任何改变,脚本基本上完全相同,所以我不明白为什么文件解密不起作用(他们可以解密密钥)

相关内容