2013-02-27 68 views
1

我面臨一個問題,無法弄清楚我缺少的是什麼。我正在計算c#中的數字簽名,並且無法獲得正確的簽名值。是否有人知道簽名前綴是否可以更改簽名值?我的web服務需要一個「ds」前綴,我做的代碼是計算簽名,然後添加前綴。這可能是問題嗎?我的摘要值是正確的,但簽名值不同。是否需要首先設置前綴,然後計算簽名? 謝謝!數字簽名前綴問題

+0

至少需要說什麼類型的加密......例如這是一個RSA簽名?你可能也想顯示你的代碼。 – Celada 2013-02-27 14:25:59

+0

這是一個xmldsig#RSA-SHA1.I在這裏有我的代碼的一部分http://stackoverflow.com/questions/15045526/signature-reference。 – 2013-02-27 15:05:07

+0

它是一個xmldsig#RSA-SHA1.I在這裏有我的代碼的一部分http://stackoverflow.com/questions/15045526/signature-reference.I一直在進步一點點。我有我的有效簽名(用soap ui測試過),我需要的是唯一不同於我從代碼獲得的簽名值。爲什麼我想知道這些前綴名稱空間是否會影響簽名值。謝謝! – 2013-02-27 15:11:20

回答

2

我不知道你是否仍然有這個問題,但如果有人發現這個線程就像我做的,這裏是我找到的解決方案。我有完全相反的問題,我需要去掉「ds:」前綴,所以我使用了來自DOMSignContext類的setDefaultNamespacePrefix()方法。下面的代碼:

DOMSignContext DSC =新DOMSignContext(。專用密鑰,document.getDocumentElement()的getElementsByTagName( 「RPS」)項目(indexNFEs));

dsc.setDefaultNamespacePrefix(「」);; //這真的很重要

signature.sign(dsc);

因此,插入「DS:」你可以嘗試使用setDefaultNamespacePrefix(「DS」)

希望這有助於你或其他人可能會來到這個頁面!