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


我公司正在我们的网站上实施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,没有升级选项。如何在不使用该全局参数的情况下修改此函数以使其仍然执行其设计的操作?


10762
2017-07-11 21:40


起源



答案:


只需传递(整数)1,这就是。的值 OPENSSL_RAW_DATA 不变:

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

在PHP 5.4之前,它是一个名为“raw_data”的布尔参数,所以你 可以 pass boolean也是TRUE,但是使用整数有一个优点 - 它是向前兼容的。

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


14
2017-07-11 21:50