Как добавить строку var внутри php-кода в python

Я видел php-код для расшифровки зашифрованной AES-256-CBC строки в PHP. Но я использую python, поэтому я искал способ добавить PHP-скрипт внутрь python.

Вот как я это сделал, как я увидел из этой ссылки:

def decrypt(encrypted_data, password):
code = """<?php
  function decryptionM($data, $key) {
    $secretkey = str_pad($key, 32, '*'); 
    echo('secretkey: ');
    echo($secretkey);
    echo("\n");
    
    $iv_with_ciphertext = base64_decode(str_replace('plusencr', '+', $data));
    echo('iv_with_ciphertext: ');
    echo($iv_with_ciphertext);
    echo("\n");
    
    $iv_length = openssl_cipher_iv_length('AES-256-CBC');
    echo('iv_length: ');
    echo($iv_length);
    echo("\n");
    $iv = substr($iv_with_ciphertext, 0, $iv_length);
    echo('iv: ');
    echo($iv);
    echo("\n");
    $ciphertext = substr($iv_with_ciphertext, $iv_length);
    echo('ciphertext: ');
    echo($ciphertext);
    echo("\n");
    $text = openssl_decrypt($ciphertext, 'aes-256-cbc', $secretkey, OPENSSL_RAW_DATA, $iv);
    echo('text: ');
    echo($text);
    echo("\n");
    $asArr = explode(',', $text);
    echo('asArr: ');
    echo($asArr);
    echo("\n");
    foreach ($asArr as $val) { 
        $tmp = explode('=', $val);
        echo('tmp: ');
        echo($tmp[0]);
        echo("\n");
        $finalArray[trim($tmp[0])] = str_replace('+', '', $tmp[1 ]); 
    }
    echo('finalArray: ');
    echo($finalArray);
    echo("\n");
    return $finalArray; 
}

  echo decryptionM(""" + encrypted_data + """, """ + password + """);

?>
"""
res = php(code.encode())

return res

Но строка echo decryptionM(""" + encrypted_data + """, """ + password + """); выдает ошибку:

[2022-03-24 02:06:50,202: WARNING/MainProcess] b"PHP Parse error:  syntax error, unexpected '=', expecting ')' in Standard input code on line 55\n\nParse error: syntax error, unexpected '=', expecting ')' in Standard input code on line 55\n"

что, как я понял, вызвано отсутствием кавычек вокруг параметров, которые являются строками, когда echo decryptionM(""" + encrypted_data + """, """ + password + """); преобразуется в PHP код.

decryptionM(data, key); должно быть decryptionM('data', 'key');

Как это сделать на python или PHP?

Вернуться на верх