Question Utiliser OPENSSL_RAW_DATA param dans openssl_decrypt avec php 5.3


Mon entreprise met en œuvre la vérification V.me sur notre site. Visa nous a fourni un fichier de fonctions d'assistance PHP pour le déchiffrement des données, mais l'une d'entre elles utilise openssl_decrypt avec le OPENSSL_RAW_DATA paramètre, qui n'est devenu disponible qu'en PHP 5.4.quelque chose.

return openssl_decrypt($data, 'aes-256-cbc', hashKey($key), OPENSSL_RAW_DATA, $iv);

Nous utilisons PHP 5.3, et il n'y a pas d'option pour mettre à niveau. Comment puis-je modifier cette fonction pour continuer à faire ce qu’elle a été conçue, sans que ce paramètre global soit disponible?


11
2017-07-11 21:40


origine


Réponses:


Il suffit de passer (entier) 1, c'est la valeur du OPENSSL_RAW_DATA constant:

return openssl_decrypt($data, 'aes-256-cbc', hashKey($key), 1, $iv);

Avant PHP 5.4, c'était un paramètre booléen appelé "raw_data", donc vous pourrait passez également booléen TRUE, mais il y a un avantage à utiliser l'entier - il est compatible avec le transfert.

Sur PHP 5.3, int (1) est implicitement converti en booléen TRUE, alors que sur 5.4+, vous transmettez la valeur de l'indicateur réel.


14
2017-07-11 21:50