1

我按照微软的例子:https ://docs.microsoft.com/en-us/dotnet/standard/security/how-to-sign-xml-documents-with-digital-signatures

我得到一个签名。

<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
    <SignedInfo>
        <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
        <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
        <Reference URI="">
            <Transforms>
                <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
            </Transforms>
            <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
            <DigestValue>e7jQRU4xmLaQmWVO9pVovhWSeGU=</DigestValue>
        </Reference>
    </SignedInfo>
    <SignatureValue>gAuVoU7bBgzJCD7VZku1Gvju4h/R4mQZGEXK5BoIAKbmYJqeWCYAdvb07gVwaFOc6DeQPmV3lS0BGE4wOZkNqvLqN2BhIM98hYSwd1KZgBDzkrNs6GoLmDLiJVwC+rq2IYOKfQumk3sD7V7KBZ/92/dbXPfPUOLEQRmF9tkJZBA=</SignatureValue>
</Signature>

但这不完全是我需要的格式。我需要发送这样的数字签名:

<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
    <SignedInfo>
        <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod>
        <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></SignatureMethod>
        <Reference URI="">
            <Transforms>
                <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></Transform>
            </Transforms>
            <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
            <DigestValue>e7jQRU4xmLaQmWVO9pVovhWSeGU=</DigestValue>
        </Reference>
    </SignedInfo>
    <SignatureValue>gAuVoU7bBgzJCD7VZku1Gvju4h/R4mQZGEXK5BoIAKbmYJqeWCYAdvb07gVwaFOc6DeQPmV3lS0BGE4wOZkNqvLqN2BhIM98hYSwd1KZgBDzkrNs6GoLmDLiJVwC+rq2IYOKfQumk3sD7V7KBZ/92/dbXPfPUOLEQRmF9tkJZBA=</SignatureValue>
</Signature>

注意这里的结束标签。有没有办法可以指示 xmlDigitalSignature 组件吐出我需要的 xml?

4

0 回答 0