当我尝试使用POST向具有以下行的脚本发出请求时:
$decrypted_data = openssl_decrypt($encrypted_data, 'AES-256-CBC', $key);
我收到以下错误:
致命错误:在第11行的mypath / usuario_webservice.php中调用未定义的函数openssl_decrypt()
经过一些研究后,常见的原因是输入了错误的函数名称,或者我的Web服务器上没有安装openssl扩展名。事实证明,它是在我检查支持时安装的。那么,我还应该寻找什么?
答案 0 :(得分:10)
我发布此信息,因为它可能会对某些人有帮助。
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
目录中的文件。希望这会有所帮助。
答案 1 :(得分:2)
通过删除分号
在 php.ini 文件中启用此扩展程序extension=php_openssl.dll
重新启动 Apache 服务器并重试
希望有所帮助:)
答案 2 :(得分:1)
我遇到了这个问题所以我只是使用了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));
?>