Как мне начать выполнять функцию PHP заново с исправленными переменными или же вставить возможные переменные?

Вопрос уже задавался, но никакого нормального ответа не дали( Наверное вопрос глупый, прошу заранее за него прощения)

Никак не могу разобраться как сделать, так чтобы выполнять функцию заново если $key не подходит, это скрипт дешифровки AES/ECB/PKCS5Padding как мне реализовать скрипт, если key не подошел, он начнет подставлять key2 например и так далее? Или как мне подсказали что нужно подставить массив из возможных ключей, но я не понял куда нужно подставить, помогите пожалуйста(

function decrypt($key, $value)
{
    if (is_numeric($value)) {
        $RES = $value;
    } else {
        $decoded_value = urldecode($value);
//Convert Base64URL to Base64 by replacing "-" with "+" and "_" with "/"
        $b64 = strtr($decoded_value, '-_', '+/');
        $result = openssl_decrypt(base64_decode($b64), "AES-128-ECB", hex2bin($key), OPENSSL_PKCS1_PADDING);
        $validation_regex = "/^(\d)+((\.)\d+)?\_/";
// Check that the decrypted value is valid
        if (preg_match($validation_regex, $result) == 0) {
            throw new Exception('Decrypted value is not valid!');
        }
        list($RES, $b) = explode("_", $result);
    }
    return $RES;
}

Ответы (1 шт):

Автор решения: Eddir

Рискну предположить, что в предыдущих комментариях Вам советовали использовать нечто такое:

$value = "some-value";
$keys = ["key1", "key2", "key3"];

foreach ($keys as $key) {
    try {
        $res = decrypt($key, $value);
        break;
    } catch (Exception $e) {
        echo $e->getMessage();
        // Следующий ключ
        continue;
    }
}
→ Ссылка