在openssl_decrypt中使用带有php 5.3的OPENSSL_RAW_DATA参数

时间:2014-07-11 21:40:57

标签: php encryption php-openssl

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

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

我们正在运行PHP 5.3,没有升级选项。如何修改此功能,以便在没有可用的全局参数的情况下仍然执行它的设计?

1 个答案:

答案 0 :(得分: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+上你将传递真正的标志值。