我正在从 Web 服务 API 接收请求中的 XML。它包含一个由请求者的私钥签名的签名,我必须通过请求者的公钥对其进行验证。然后我必须发送带有签名的响应,由我的私钥签名。
此过程应使用 PHP 中的 RSA 和 SHA-256 来完成。
我目前有以下代码:
$data_to_encrypt = "MsgBody..../MsgBody"; // xml
$msgbody = simplexml_load_string($data_to_encrypt);
$result = $msgbody->xpath('//MsgBody');
openssl_private_encrypt(json_encode($result), $encrypted, $private_key, OPENSSL_PKCS1_PADDING);
$signature = $encrypted;
$verify = openssl_verify($encrypt, $signature ,$publick_key, OPENSSL_ALGO_SHA256);
Run Code Online (Sandbox Code Playgroud)
$verify的结果= 0。为什么这是一个错误的验证?