【发布时间】:2017-09-20 14:54:23
【问题描述】:
我需要使用私有 X509 密钥对 xml 数据类型进行签名 这是我使用的代码: $data->save("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);
它返回的错误是:
警告:openssl_sign() 期望参数 1 是字符串,对象在第 32 行的 C:\xampp\htdocs\test\index.php 中给出
【问题讨论】:
-
可以显示$data值!?
-
是的...更新了问题
标签: php xml ssl encryption x509