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

标签 php encryption php-openssl

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

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

我们运行的是 PHP 5.3,没有升级选项。我如何修改此函数,使其仍然按照设计的目的运行,而无需使用该全局参数?

最佳答案

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

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

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

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

关于php - 在带有 php 5.3 的 openssl_decrypt 中使用 OPENSSL_RAW_DATA 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24707007/

相关文章:

php - 查询两个表的不同/单独值

javascript - Javascript中是否可以进行端到端加密?

python - 将二进制数据加密为二进制数据并解密

iphone - iOS 中的 PBEWithMD5AndDES 加密

php - PHP 中的私有(private)证书颁发机构?

php - 组合来自 3 个 php 应用程序的用户表

javascript - 在 PHP 中增加格式化代码

php - 在单元测试中模拟私钥/公钥?

Php Composer openssl错误

php - 在性能方面, if 或 switch 或三元哪个最好?