繁体   English   中英

调用未定义的函数openssl_decrypt

[英]Call to undefined function openssl_decrypt

当我尝试使用POST向具有此行的脚本发出请求时:

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

我收到以下错误:

致命错误:在第11行的mypath / usuario_webservice.php中调用未定义的函数openssl_decrypt()

经过一些研究后,常见的原因是为函数输入了错误的名称,或者我的Web服务器上没有安装openssl扩展名。 事实证明,它是在我检查支持时安装的。 那么,我还应该寻找什么呢?

我发布这个,因为它可能对一些人有帮助。

  • 检查extension=php_openssl.dll已在php.ini启用。
  • 检查extension_dir是否在php.ini正确指向。

如果你最近升级了你的php版本而不是你的Apache,那么可能是正确的libeay32.dllssleay32.dll没有被读取,这是openssl或某些版本不匹配的要求。

  • 获取libeay32.dllssleay32.dll最新版本,或者从你的php目录中复制它,例如C:\\php并覆盖Apache \\ bin中的文件,如C:\\Apache24\\bin目录。

希望这会有所帮助。

通过删除分号在php.ini文件中启用此扩展

extension=php_openssl.dll

重新启动Apache服务器并重试
希望有帮助:)

我有这个问题,所以我只是使用了phptclib的Crypt_AES:

<?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));
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM