Расшифровка зашифрованного файла с помощью openssl не работает с момента смены ОС (linux на windows)


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:

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


Какие именно команды вы используете для каждого шага шифрования? Вы пытались расшифровать файлы самостоятельно (если да, какие именно команды?) Какую версию OpenSSL вы используете? Какую версию использует поставщик? openssl version
RedGrittyBrick

Вы уверены, что файл одинаков в обоих местах? Передайте контрольную сумму и попросите их проверить.
Ignacio Vazquez-Abrams

привет, вот используемая команда: ON LINUX openssl rand -base64 30 & gt; 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 -вне шифруется .key В WINDOWS openssl \ bin \ openssl.exe rand -base64 30 & gt; 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 - в my.key -out encrypted.key openssl версии немного отличаются, но, поскольку они могут расшифровать ключ, я предполагаю, что это не проблема. Спасибо.
Zapp
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.