Как добавить строку 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?