Так как у вас есть переменная окружения, почему бы просто не запустить ее?Стоит отметить, что ваш параметр -in
не имеет экранирования оболочки, что обычно требуется, используя shellescape
.
Вы действительно следуетуказывайте их как отдельные аргументы, однако, по возможности, чтобы избежать проблем с внедрением.Проблема в том, что в этот момент вы теряете интерполяцию оболочки.
Хорошая новость заключается в том, что вы всегда можете написать скрипт-обертку для обеспечения безопасности и простоты использования, например:
#!/bin/sh
# descrypt.sh
openssl enc -aes-256-cbc -d -a -k "$MATCH_PASSWORD" -in $1 -out $2
Вы можете назвать это так:
sh('descrypt.sh', enc_file, dec_file[0])
Теперь в нем записано что-то намного тише, а также бонус.С помощью $*
.
вы можете выбрать, какие аргументы передать, или даже выбросить их все.