1

問題に直面していて、何が欠けているのか理解できません.c#でデジタル署名を計算していて、正しい署名値を取得できません。署名プレフィックスが署名値を変更できるかどうか誰かが知っていますか?私のWebサービスは「ds」プレフィックスを必要としています。コードで行うことは、署名を計算し、その後プレフィックスを追加することです。これが問題になる可能性がありますか?私のダイジェスト値は正しいですが、署名値が異なります。最初にプレフィックスを設定し、その後署名を計算する必要がありますか?ありがとう!

4

1 に答える 1

2

まだこの問題があるかどうかはわかりませんが、誰かが私と同じようにこのスレッドを見つけた場合、ここに解決策があります。「ds:」プレフィックスを削除する必要があったため、DOMSignContext クラスの setDefaultNamespacePrefix() メソッドを使用しました。コードは次のとおりです。

DOMSignContext dsc = new DOMSignContext(privateKey, document.getDocumentElement().getElementsByTagName("Rps").item(indexNFEs));

dsc.setDefaultNamespacePrefix(""); // これが本当に重要です

signature.sign(dsc);

したがって、「ds:」を挿入するには、setDefaultNamespacePrefix("ds:") を使用してみてください。

これがあなたやこのページに来るかもしれない他の誰かに役立つことを願っています!

于 2013-07-06T00:56:20.390 に答える