11

我的公司正在我们的网站上实施 V.me 结帐。Visa 为我们提供了一个用于解密数据的 php 帮助函数文件,但其中一个与参数一起使用openssl_decrypt,该OPENSSL_RAW_DATA参数仅在 PHP 5.4.something 中可用。

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

我们正在运行 PHP 5.3,并且没有升级选项。在没有可用的全局参数的情况下,如何修改此函数以使其仍然执行其设计目的?

4

1 回答 1

15

只需传递(整数)1,这就是OPENSSL_RAW_DATA常量的值:

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

在 PHP 5.4 之前,它是一个名为“raw_data”的布尔参数,因此您也可以传递布尔值 TRUE,但使用整数有一个优势——它是向前兼容的。

在 PHP 5.3 上,int(1) 被隐式转换为布尔值 TRUE,而在 5.4+ 上,您将传递真正的标志值。

于 2014-07-11T21:50:01.113 回答