2014-07-11 31 views
8

Moja firma realizuje zamówienie V.me na naszej stronie. Visa dostarczyła nam plik php pomocników do odszyfrowywania danych, ale jeden z nich używa openssl_decrypt z parametrem OPENSSL_RAW_DATA, który dostępny jest tylko w PHP 5.4.Używanie parametru OPENSSL_RAW_DATA w openssl_decrypt przy użyciu php 5.3

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

Używamy PHP 5.3 i nie ma opcji do uaktualnienia. Jak mogę zmodyfikować tę funkcję, aby nadal działała zgodnie z przeznaczeniem, bez udostępnienia tego parametru globalnego?

Odpowiedz

12

Wystarczy przejść (całkowita) 1, to wartość stałej OPENSSL_RAW_DATA:

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

Przed PHP 5.4, była to logiczna parametr zwany "raw_data", więc mógł wprost logiczna TRUE jako cóż, ale zaletą jest użycie liczby całkowitej - jest ona zgodna w przód.

W PHP 5.3 int (1) jest domyślnie rzutowany na wartość logiczną PRAWDA, natomiast w wersji 5.4+ wartość rzeczywistą flagi.