Вызов неопределенной функции openssl_decrypt

Когда я пытаюсь сделать запрос с POST к сценарию, который имеет эту строку:

$decrypted_data = openssl_decrypt($encrypted_data, 'AES-256-CBC', $key);

Я получаю следующую ошибку:

Неустранимая ошибка: вызов неопределенной функции openssl_decrypt () в mypath / usuario_webservice.php в строке 11

После некоторых исследований распространенными причинами будет ввод неправильного имени для функции или расширение openssl на моем веб-сервере. Оказывается, он установлен, как я проверял с поддержкой. Итак, что еще я должен искать?

3

Решение

Я публикую это, поскольку это может быть полезно для некоторых.

  • Проверьте 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 каталог.

Надеюсь, это поможет.

10

Другие решения

Включите это расширение в вашем php.ini файл путем удаления точки с запятой

extension=php_openssl.dll

Перезагрузите свой апаш сервер и повторите
Надеюсь, это поможет 🙂

2

У меня была эта проблема, поэтому я просто использовал 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));
?>
1
По вопросам рекламы [email protected]