在使用PHP 5.3中的openssl_decrypt函数时,如何使用OPENSSL_RAW_DATA参数?

11

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

return openssl_decrypt($data, 'aes-256-cbc', hashKey($key), OPENSSL_RAW_DATA, $iv);
我们正在运行 PHP 5.3,并且没有升级的选项。我该如何修改这个函数,使其仍然能够完成其设计目的,而不需要使用全局参数?
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+ 上,您将传递真正的标志值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接