【发布时间】:2021-11-06 08:50:33
【问题描述】:
尝试将加密数据从 laravel php8 应用程序发送到 sage pay 或 opayo。
我无法弄清楚如何在 PHP8 中使用 PKCS#5 填充在 CBC 模式下执行 AES(块大小 128 位)。
Openssl 似乎只允许我们填充 PKCS#7 和旧的 PHP 示例和方法都依赖于已弃用/删除的函数。
$cryptFieldString = http_build_query($cryptFields);
$encodedCrypt = openssl_encrypt($cryptFieldString, 'aes-128-cbc', $key, 0, $key);
$crypt = '@'.strtoupper(bin2hex($encodedCrypt));
$encodedCrypt 变量将始终返回 PKCS#7 或原始数据。
提前致谢
【问题讨论】:
-
在 AES 的上下文中,PKCS#5 填充是什么意思?也许你混淆了 PKCS#5 和 PKCS#7 填充,请参阅here。
标签: php encryption opayo php-8 pkcs#5