Когда я пытаюсь сделать запрос с POST к сценарию, который имеет эту строку:
$decrypted_data = openssl_decrypt($encrypted_data, 'AES-256-CBC', $key);
Я получаю следующую ошибку:
Неустранимая ошибка: вызов неопределенной функции openssl_decrypt () в mypath / usuario_webservice.php в строке 11
После некоторых исследований распространенными причинами будет ввод неправильного имени для функции или расширение openssl на моем веб-сервере. Оказывается, он установлен, как я проверял с поддержкой. Итак, что еще я должен искать?
Я публикую это, поскольку это может быть полезно для некоторых.
extension=php_openssl.dll
включен в вашем php.ini
, extension_dir
правильно указано в php.ini
,Если вы недавно обновили версию php, а не Apache, возможно, это libeay32.dll
а также ssleay32.dll
не читаются, что является обязательным требованием для openssl, или происходит несовпадение версий.
libeay32.dll
а также ssleay32.dll
или скопируйте его из вашего каталога php C:\php
и перезаписать файлы в вашем Apache \ bin сказать C:\Apache24\bin
каталог.Надеюсь, это поможет.
Включите это расширение в вашем php.ini файл путем удаления точки с запятой
extension=php_openssl.dll
Перезагрузите свой апаш сервер и повторите
Надеюсь, это поможет 🙂
У меня была эта проблема, поэтому я просто использовал Crypt_AES от phpseclib:
<?php
include('Crypt/AES.php');
$cipher = new Crypt_AES(); // it's cbc by default
$cipher->setKeyLength(256);
$cipher->setKey('abcdefghijklmnopijklmnopqrstuvwxyz3456');
$size = 10 * 1024;
$plaintext = str_repeat('a', $size);
echo $cipher->decrypt($cipher->encrypt($plaintext));
?>