Я работаю над небольшим сценарием, который шифрует файл для отправки одному из наших поставщиков.
Рабочий процесс выглядит следующим образом:
- Мы создали ключ, который мы асимметрично шифруем, используя открытый ключ они предоставили
- С зашифрованным ключом мы делаем симметричное шифрование файла, который мы нужно отправить
- Затем мы сжимаем оба файла (ключ + файл)
- После получения они разархивируют файл
- Они расшифровывают ключ, используя свой закрытый ключ
- Затем они дешифруют файл, используя расшифрованный ключ
Вот используемые команды:
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:
Я абсолютно ничего не изменил в способе работы, сценарий в основном точно такой же, поэтому я не понимаю, почему не работает дешифрование файла (хотя они могут расшифровать ключ)
Вы уверены, что файл одинаков в обоих местах? Передайте контрольную сумму и попросите их проверить.
—
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
openssl version