Skip to main content
Stack Overflow
  1. About
  2. For Teams

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

Required fields*

Required fields*

Invoke OpenSSL command via shell_exec() in PHP [duplicate]

When I execute:

openssl_decrypt(
 base64_decode(file_get_contents('/path/to/file')),
 'aes-256-cbc',
 $key,
 OPENSSL_RAW_DATA,
 $iv
);

OpenSSL decrypts my file perfectly. However, when I execute:

shell_exec('openssl enc -aes-256-cbc -base64 -d -A -p -K ' . $key . ' -iv ' . $iv . ' -in /path/to/file -out /path/to/dest');

The destination file is not created.

Does anyone know what could be wrong? My client wants to be able to upload large files up to 2GB, and loading that much data into a PHP variable seems like an exceedingly bad idea.

Edit:

With bin2hex i get a seemingly sane command of:

openssl enc -aes-256-cbc -base64 -d -A -p -K 64343438343165333635663434663262633036636235656462383238356239303763373365353633 -iv abdd099c7bac8b514089d8c901c8395c -in /usr/www/vault/new/d71fd708181573c5f92c8f500ddcb399/787 -out /tmp/decrypted/57574484b684c

But with pack I get:

openssl enc -aes-256-cbc -base64 -d -A -p -K M�>VO���[ދ�� �7^6 -iv ⬧⬧⬧⬧⬧⬧⬧ -in /usr/www/vault/new/d71fd708181573c5f92c8f500ddcb399/787 -out /tmp/decrypted57574484b684c

Answer*

Draft saved
Draft discarded
Cancel
2
  • Yeah, I've tried hex encoding my key and iv to hex and it still doesn't output anything. I'm going to keep looking at it. Commented Jun 7, 2016 at 21:37
  • bin2hex encodes with "highest nibble first" which is network byte order. You can try to encode it with "lowest nibble first"/little endian, which is the byte order of a normal intel based PC, using pack: pack("h*", $key) Commented Jun 7, 2016 at 21:42

lang-php

AltStyle によって変換されたページ (->オリジナル) /