用PHP中的Passphrase解密Rijndael

A customer is sending us a file encrypted with "AES-256". It arrives as a binary file (I normally get base64-encoded files, but this should be OK) and, in desperation, I have iterated through the PHP options using mcrypt_decrypt but cannot crack it.

<?php
$str = file_get_contents($argv[1]);
$key ='jimminny fred owns apple'; //not the actual one, but same length

$modes = array(
    MCRYPT_MODE_ECB,
    MCRYPT_MODE_CBC,
    MCRYPT_MODE_CFB,
    MCRYPT_MODE_OFB,
    MCRYPT_MODE_NOFB);

$cryps = array(
    MCRYPT_RIJNDAEL_128,
    MCRYPT_RIJNDAEL_256,
    MCRYPT_RIJNDAEL_192);

foreach($modes as $mode){
    foreach($cryps as $cryp){
        echo "

$cryp $mode

";
        echo mcrypt_decrypt($cryp, $key, $str, $mode);
    }
}

My understanding is that I should be receiving a 32-byte key, not a 24 char passphrase, but they are using a program called GlobalScape and this is all it requires for its 'Rijndael' encryption. (See screenshot attached showing the dialog window that the customer completes at their end).enter image description here

I've checked the site and GlobalScape doesn't offer any details on how they encrypt. Not only do they not specify the key derivation function (KDF) that they use for "Rijndael" encryption. It's unlikely that they directly use the passphrase as a key - unless they are complete muppets - but the KDF could be anything. They do not specify the mode of operation for AES either

Simply do not use trash like that. Just use PGP or one of the standardized options for sending / receiving messages.

Going on a wild goose chase won't help you. Even if you program a solution then it may fail in the future because of any number of factors. Ask your client to clearly specify a protocol instead of giving you a screenshot.