XML签名实现
使用XML Signature确保文档完整性和身份认证。 · 难度:入门 · +15XP
XML签名机制
XML签名用于验证XML数据的完整性和来源。它可以签名整个文档、特定元素或外部资源。签名结果以<Signature>元素嵌入或独立存储。
签名结构
<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="#doc">
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<DigestValue>Base64哈希值</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>Base64签名值</SignatureValue>
<KeyInfo>
<KeyName>user-cert</KeyName>
</KeyInfo>
</Signature>签名类型
| 类型 | 说明 |
|---|---|
| 封内签名 | Signature在签名数据内部 |
| 封外签名 | Signature在签名数据外部 |
| 分离签名 | 签名独立于数据 |
练习提示
为下面的文档创建一个封内签名,引用根元素。注意Canonicalization的重要性。