Appel de fonction non définie openssl_decrypt
Lorsque je tente de faire une demande par la POSTE à un script qui a cette ligne:
$decrypted_data = openssl_decrypt($encrypted_data, 'AES-256-CBC', $key);
J'obtiens l'erreur suivante:
Fatal error: Call to undefined function openssl_decrypt() dans mypath/usuario_webservice.php sur la ligne 11
Après quelques recherches, les raisons les plus courantes serait entrer dans le mauvais nom de la fonction ou de la openssl extension n'est pas installé sur mon serveur web. Il s'avère qu'il est installé comme je l'ai vérifié avec le support. Alors, quoi d'autre devrais-je être à la recherche d'?
Quelle version de php est installé sur un serveur web? vous avez besoin de php 5.3+
le module openssl doit être installé ET activé. Soutien probablement juste confirmé que c'est installé mais jamais vérifié qu'il est allumé, utilisez
Pas selon cette page: php.net/manual/en/function.openssl-decrypt.php. Notez que c'est spécifique à la fonction que vous essayez d'utiliser.
Eh bien peut-être cela est-il alors. Il est donc possible d'avoir un soutien pour l'extension, mais pas pour certaines méthodes spécifiques?
"It turns out that it is installed as I checked with the support."
Peut-être que l'assistance ne savent pas de quoi ils parlent. Faire une page PHP avec <?php phpinfo(); ?>
, exécuter, et de regarder à travers elle de voir par vous-même si sa installé ou pas.le module openssl doit être installé ET activé. Soutien probablement juste confirmé que c'est installé mais jamais vérifié qu'il est allumé, utilisez
<?php phpinfo(); ?>
et voir si le module est en fait utilisé.Pas selon cette page: php.net/manual/en/function.openssl-decrypt.php. Notez que c'est spécifique à la fonction que vous essayez d'utiliser.
Eh bien peut-être cela est-il alors. Il est donc possible d'avoir un soutien pour l'extension, mais pas pour certaines méthodes spécifiques?
OriginalL'auteur CJ_COIMBRA | 2015-01-14
Vous devez vous connecter pour publier un commentaire.
Je suis l'affichage de ce qu'il pourrait être utile à certains.
extension=php_openssl.dll
est activé dans votrephp.ini
.extension_dir
est fait correctement dansphp.ini
.Si vous avez récemment mis à jour votre version de php et pas votre Apache, il pourrait y avoir une possibilité que correct
libeay32.dll
etssleay32.dll
ne sont pas de lire ce qui est une exigence pour openssl ou certains incompatibilité de version qui se passe.libeay32.dll
etssleay32.dll
ou de le copier à partir de votre répertoire php direC:\php
et remplacer les fichiers dans votre Apache\bin disC:\Apache24\bin
répertoire.Espère que cela aidera.
Sympa..et vous êtes les bienvenus :).
OriginalL'auteur Sambhav Pandey
Permettre cette extension dans votre php.ini fichier en supprimant le point-virgule
Redémarrez votre Apache serveur et réessayez
Espérons que cela aide 🙂
Précisément, je peux voir le contenu, mais je ne peux pas modifier mon .ini
OriginalL'auteur Halayem Anis
j'ai eu ce problème donc j'ai simplement utilisé Crypt_AES par phpseclib:
Est-ce compatible avec le chiffrement OpenSSL? Il est important d'être en mesure de déchiffrer les données sur une machine qui a été chiffré sur l'autre.
OriginalL'auteur mollywallyamma