1

Я работаю над небольшим сценарием, который шифрует файл для отправки одному из наших поставщиков.

Рабочий процесс выглядит следующим образом:

  1. Мы создали ключ, который мы асимметрично шифруем, используя открытый ключ, который они предоставили
  2. С помощью зашифрованного ключа мы делаем симметричное шифрование файла, который нам нужно отправить
  3. Затем мы сжимаем оба файла (ключ + файл)
  4. После получения они распаковывают файл
  5. Они расшифровывают ключ, используя свой закрытый ключ
  6. Затем они дешифруют файл, используя ключ дешифрования.

Вот используемые команды:

ON 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

НА ОКНАХ

  • 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. Я адаптировал скрипт и загрузил программу openssl для Windows.

Но когда наш поставщик получает файл, шаг 6) не работает:/

У них есть эта ошибка:

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

Я абсолютно ничего не изменил в способе работы, сценарий в основном точно такой же, поэтому я не понимаю, почему не работает дешифрование файла (хотя они могут расшифровать ключ)

0