网站大量收购闲置独家精品文档,联系QQ:2885784924

XML签名加密.docx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
技术概要为保证请求/应答数据在传输过程中的真实性和完整性,需要对数据进行数字签名,今天我们学习一下W3C推荐的XML Signature标准来实现数据的签名和验签。参考链接:/6271.html签名算法您可以使用XML签名对任何种类的数据进行签名,这些数据包括XML文档的某个部分、其他XML文档或任何格式的其他数据。但是,实际上,XML签名最常用于对以XML表示的其他数据进行签名。XML签名标准还非常灵活,它允许您在签名之前对数据进行筛选和转换,并且使您可以精确地选择要签名的内容以及签名方式。经过签名的文档:docRoot??? aHello/a??? bWorld/b??? Signature xmlns=/2000/09/xmldsig#??????? SignedInfo??????????? CanonicalizationMethod??????????????? Algorithm=/TR/2001/REC-xml-c14n??????????? SignatureMethod??????????????? Algorithm=/2000/09/xmldsig#rsa-sha1/??????????? Reference URI=??????????????? Transforms??????????????????? Transform??????????????????????? Algorithm=??????????????????????????? /2000/09/xmldsig#enveloped-signature/??????????????? /Transforms??????????????? DigestMethod??????????????????? Algorithm=/2000/09/xmldsig#sha1/??????????????? DigestValuecbPT0951Ghb2G3UjpVjWw+7q0Bc=/DigestValue??????????? /Reference??????? /SignedInfo??????? SignatureValueIoEwS(3 lines of Base64 text)XSo=/SignatureValue??? /Signature/docRoot每个元素所包含的内容:??? SignedInfo——该元素的子元素包含有关所签名的内容以及签名方式的所有信息。签名算法实际上应用于该元素及其所有子元素以生成签名。??? CanonicalizationMethod——该元素指定了用于SignedInfo元素以便将XML规范化的规范化(C14N)算法。??? SignatureMethod——该元素指定了该签名的签名算法。在该示例中,签名算法是带有RSA(用于对产生的哈希值进行签名)的SHA-1(用于哈希运算)。??? Reference——这些元素指定了将要签名的数据以及在哈希运算之前应当如何对该数据进行处理。URI属性(它表示统一资源标识符)标识要签名的数据,而Transforms元素指定在进行哈希运算之前如何处理数据。在该示例中,我们将使用特殊的URI——空字符串,它指定包含签名的文档是要包含在签名中的数据。XML签名标准对Reference数据使用间接签名机制。该标准不是对Reference中的所有数据进行哈希运算然后加密哈希值,而是使用由Reference的DigestMethod元素所指定的算法对每个Reference的数据进行哈希运算,然后将哈希值存储到Reference的DigestValue元素中。接下来,对SignedInfo元素和它的所有子元素(包括Reference元素)进行哈希运算;哈希值被加密以生成签名。因此,您实际上是对Reference元素中所引用数据的哈希的哈希进行签名,但是该方案仍然可以保护数据的完整性。??? Transforms——每个Reference元素都可以具有零个或更多个为它指定的转换。这些转换按照它们在XML中列出的顺序应用于该Reference的数据。转换使您可以在对Reference的数据进行哈希运算之前对该数据进行筛选或修改。在该示例中,我们将使用包封式签名转换,该转换选择了包含文档中除Signature元素以外的所有XML。我们必须从将被签名的数据中移除Signature元素,否则,当我们存储签名值时,可能会修改我们尝试签名的数据。??? SignatureValue——该元素包含通过签名SignedInfo元素及其所有子元素而计算得到的签名值。签名的处理模型。首先,对于签名中的每个Reference元素:按照转换在Transforms元素下面出现的顺序,将

文档评论(0)

此项为空 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档