gpt4 book ai didi

php - 使用 X509 私钥签署 xml 数据类型

转载 作者:太空宇宙 更新时间:2023-11-03 15:10:23 25 4
gpt4 key购买 nike

我需要使用 X509 私钥签署 xml 数据类型这是我使用的代码:$data->保存("test.xml");

$data = new DOMDocument("1.0", "utf-8");
$xml_order = $data->createElement("order");
$xml_tag1 = $data->createElement("signature","000");
$xml_tag2 = $data->createElement("service","000");
$xml_tag3 = $data->createElement("url");
$xml_tag_confirm = $data->createElement("confirm","yes");

$attr = $data->appendChild( $xml_order);
$attr->appendChild($xml_tag1);
$attr->appendChild($xml_tag2);
$url = $attr->appendChild($xml_tag3);
$url->appendChild($xml_tag_confirm);
$attr->setAttribute("type","ama");
$attr->setAttribute("id", "passwordiguess");
$attr->setAttribute("date", date("YmdHis"));
$signature;
$pkeyid = openssl_pkey_get_private(file_get_contents('./private.key'));
$keyData = openssl_pkey_get_details($pkeyid);
openssl_sign($data, $signature, $pkeyid);
openssl_free_key($pkeyid);

它返回的错误是:

Warning: openssl_sign() expects parameter 1 to be string, object given in C:\xampp\htdocs\test\index.php on line 32

最佳答案

好吧,问题是您将文件作为参数传递,而不是 openssl_sign 中的字符串功能

您应该将 xml 文档转换为字符串,尝试添加这一行

 $data = new DOMDocument("1.0", "utf-8");
$xml_order = $data->createElement("order");
$xml_tag1 = $data->createElement("signature","000");
$xml_tag2 = $data->createElement("service","000");
$xml_tag3 = $data->createElement("url");
$xml_tag_confirm = $data->createElement("confirm","yes");

$attr = $data->appendChild( $xml_order);
$attr->appendChild($xml_tag1);
$attr->appendChild($xml_tag2);
$url = $attr->appendChild($xml_tag3);
$url->appendChild($xml_tag_confirm);
$attr->setAttribute("type","ama");
$attr->setAttribute("id", "passwordiguess");
$attr->setAttribute("date", date("YmdHis"));
/* this would convert the xml document to string */
$output = $data->saveXML();
$signature;
$pkeyid = openssl_pkey_get_private(file_get_contents('./private.key'));
$keyData = openssl_pkey_get_details($pkeyid);
/* then pass the $output to openssl_sign*/
openssl_sign($output, $signature, $pkeyid);
openssl_free_key($pkeyid);

关于php - 使用 X509 私钥签署 xml 数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46325370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com