岁月联盟 · 中国技术网 本站主页 | 安全认证 | 用户服务 | 技术论坛
新闻快报 | 新手学堂 | 黑客特区 | 程序语言 | 数 据 库 | 防 火 墙 | 路由交换 | 系统集成 | 服 务 器 | 存储备份 | 考试认证
Windows | Linux | Java | 协议分析 | 问题解答 | 进程大全 | 网页设计 | 多 媒 体 | 图库资料 | 软件下载 | 站内下载
  您现在的位置: 岁月联盟 >> Java >> 其他技术 >> Java正文
Java SE 6中XML数字签名标准Java接口
作者:未知 文章来源:本站整理 点击数: 更新时间:2007-7-23 9:51:47
g/2000/09/xmldsig#enveloped-signature"/> 18. </Transforms> 19. <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> 20. <DigestValue>9gETxLIm1huTZtMkmGlybtZWa5g=</DigestValue> 21. </Reference> 22. </SignedInfo> 23. <SignatureValue> OIFpnZmeGt+tOywzTgrcYBje/04uGmGIrbZYYxxXj4jsBdq+0JwZ1A== </SignatureValue> 24. <KeyInfo> 25. <KeyValue> 26. <DSAKeyValue> 27. <P> 28. /KaCzo4Syrom78z3EQ5SbbB4sF7ey80etKII864WF64 29. B81uRpH5t9jQTxeEu0ImbzRMqzVDZkVG9xD7nN1kuFw== 30. </P> 31. <Q>li7dzDacuo67Jg7mtqEm2TRuOMU=</Q> 32. <G> 33. Z4Rxsnqc9E7pGknFFH2xqaryRPBaQ01khpMdLRQnG 34. 541Awtx/XPaF5Bpsy4pNWMOHCBiNU0NogpsQW5QvnlMpA== 35. </G> 36. <Y> 37. NMxkCcO6Hdd146qBJ4FQGPpz8IncS8onBPshqlxsd 38. pAqgM2lgn8kCPHqfO7jLx7NPZwHeDtHLfKKSYg+Ln6Xzw== 39. </Y> 40. </DSAKeyValue> 41. </KeyValue> 42. </KeyInfo> 43. </Signature> 44. </PaymentInfo>

 

[1] [2] [3] [4] [5] 下一页  

    所有与 XML 数字签名相关的信息都存放在 <Signature> 元素中。<Signature> 元素包含有几个主要的子元素:

  • <Reference> 元素至少包含一个 <Reference> 元素,每个 <Reference> 元素用于对待签名数据进行引用,包含有引用方式、转换方法、摘要算法和摘要值等信息。<Reference> 还包含有 XML 数据的规则化方法,并指定了数字签名所使用的算法。
  • <SignatureValue> 元素包含对 <Reference> 元素规范化后的内容进行签名生成的数字签名的值。
  • <KeyInfo> 元素用于指定验证签名所需的公共密钥相关信息。

XML 数字签名的过程大致为:

  • 1. 根据每个 <Reference> 元素中指定的资源引用方式,摘要算法,数据转换方法等信息,对引用资源进行转换,然后对转换后的结果计算出摘要值。
  • 2. 根据 <SignedInfo> 元素中指定的 XML 数据的规范化方法对 <SignedInfo> 规则化,对规范化之后的数据生成摘要值,并使用私钥对摘要值进行加密,将生成的加密摘要值存放在 <SignatureValue> 元素中。

1.4 XML 数字签名的验证

    XML 数字签名的验证主要包括两个步骤,首先需要对 <SignedInfo> 元素中包含的数据引用部分进行验证,然后对整个 <SignedInfo> 元素的签名值进行验证。其间任何一步验证失败则代表整个 XML 数字签名验证失败。

1. 对数据引用的验证

<SignedInfo> 中每一个 <Reference> 执行如下验证步骤:

  • 1) 应用指定的数据转换方法取得引用的数据对象
  • 2) 使用指定的摘要生成算法生成摘要值
  • 3) 将生成的摘要值同 <Reference><DigestValue> 元素包含的摘要值相比较,如果不匹配,则验证失败。

2. 对 <SignedInfo> 签名值的验证

  • 1) 从 <KeyInfo> 元素中的 <KeyValue> 元素或者根据 <KeyInfo> 元素中指定的信息从外部获取用于验证数字签名的数据发送方公共密钥。
  • 2) 使用验证密钥将 <SignatureValue> 元素中的加密签名值解密,得到值 D
  • 3) 使用 <SignatureMethod> 元素指定的签名算法对规则化之后的 <SignedInfo> 元素计算摘要值,得到值 D’
  • 4) 判断 DD’ 是否匹配,如果不匹配,则验证失败。

2. XML 数字签名的Java实现

    在 W3C 推出 XML 数字签名规范之后不久,很多组织和厂商就已经开始提供实现产品。目前,除了各大厂商推出的实现产品之外,应用比较广泛的开源产品是 Apache XML Security 项目。该项目实现了 W3C 的 XML 数字签名规范和 XML 加密规范,并且提供 Java 和 C++ 两个版本供用户选用。

    JSR 105 (Java XML Digital Signature API Specifica

上一页  [1] [2] [3] [4] [5] [6] [7] [8] 下一页


  • 上一个Java:
  • 下一个Java:
  •  
    热门文章
    推荐文章
    关于我们 | 发展历程 | 网站地图 | 广告服务 | 招贤纳士 | 战略合作 | 友情链接 | 著作声明 | 联系我们
    Copyright © 2002-2007 SYUE All rights reserved.
    E_mail:WebSyue@163.Com 皖ICP备05004589号
    未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任.
    惊天动地私服 天龙八部私服 天龙八部私服 热血江湖私服 天龙八部私服 bet365 bet365 传世私服 传奇世界私服