1
我想用PHP和xmlseclibs簽署XML文件。 但是所有的驗證工具都說我的簽名是無效的。 XMLSpy的說: 「算的摘要值不匹配的參考摘要」XML簽名DigestValue無效
這是我的XML:
<root><value>x</value></root>
這是摘要,我得到:
KaMTM32K5rXl9U6MgG2BXuzNxoQ=
我的方法用得到它:
1)PHP:
$doc = new DOMDocument();
$doc->loadXML('<root><value>x</value></root>');
echo base64_encode(sha1($doc->documentElement->C14N(), true));
2)的OpenSSL:
openssl dgst -binary -sha1 test.xml | openssl enc -base64
3)本網站:http://hash.online-convert.com/sha1-generator
這是消化是XMLSpy的莫名其妙變得和工作原理:
HedaN7TMgHgq2bRypzavMuFLoCg=
我如何獲得這個消化?
摘要值可能不僅僅取決於blob簽名,而且還取決於引用在xml簽名中籤名的轉換。如果您可以共享您的簽名文件,這將有所幫助。請注意,當您使用相同的規範化(C14N)對此Blob進行簽名時,我會得到與您相同的哈希值。 – Moez 2014-09-03 14:52:29