岁月联盟 · 中国技术网 本站主页 | 安全认证 | 用户服务 | 技术论坛
新闻快报 | 新手学堂 | 黑客特区 | 程序语言 | 数 据 库 | 防 火 墙 | 路由交换 | 系统集成 | 服 务 器 | 存储备份 | 考试认证
Windows | Linux | Java | 协议分析 | 问题解答 | 进程大全 | 网页设计 | 多 媒 体 | 图库资料 | 软件下载 | 站内下载
  您现在的位置: 岁月联盟 >> Java >> 其他技术 >> Java正文
Java SE 6中XML数字签名标准Java接口
作者:未知 文章来源:本站整理 点击数: 更新时间:2007-7-23 9:51:47
rg/TR/2001/REC-xml-c14n-20010315#WithComments"/> 5. <SignatureMethod 6. Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/> 7. <Reference URI="#SimonPayment"> 8. <DigestMethod 9. Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> 10. <DigestValue> XGesfrCnr8KuXCBmwlb4ofheksg=</DigestValue> 11. </Reference> 12. </SignedInfo> 13. 14. <SignatureValue> 15. kxOvEO6beK6rcLh+5OyJz5G2KjFBKKLGREtMGgio2CZzYpaNH/nyfw== 16. </SignatureValue> 17. 18. <KeyInfo> <KeyValue> <DSAKeyValue> <P> /KaCzo4Syrom78z3EQ5SbbB4sF7ey80etKII864WF64B81uRpH5t9 jQTxeEu0ImbzRMqzVDZkVG9xD7nN1kuFw== </P> <Q>li7dzDacuo67Jg7mtqEm2TRuOMU=</Q> <G> Z4Rxsnqc9E7pGknFFH2xqaryRPBaQ01khpMdLRQnG541Awtx /XPaF5Bpsy4pNWMOHCBiNU0NogpsQW5QvnlMpA== </G> <Y> MOqJjU5ihtTOS6wiVnoZSCz3mDewfBsy4eRLIzgZe47iJ1F9 jGJHC1HvUt3zd6l5zHu1ubZpR4y0XIEAxvprKw== </Y> </DSAKeyValue> </KeyValue> 19. </KeyInfo> 20. 21. <Object Id="SimonPayment"> 22. <PaymentInfo xmlns="http://example.com/payment"> 23. <CustomerName>Simon</CustomerName> 24. <Amount>25000</Amount> 25. 26. <CreditCardInfo> 27. <ID>4392 5649 8178 2315</ID> 28. <Issuer>CMB</Issuer> 29. <Expiration>06/2010</Expiration> 30. <Currency>USD</Currency> 31. </CreditCardInfo> 32. </PaymentInfo> 33. </Object> 34. </Signature>

表 5 中的验证程序同样可以用来验证上面生成的 Enveloping 格式的 XML 签名。

 

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

 

3.3 生成并验证Detached格式的签名

    Detached 格式的签名指 <Signature> 元素与被签名的数据内容之间是彼此分离的,既不是包含关系也不是被包含关系,如下表所示:

 1.	..............

 2.	<SignedData>

 3.	    ..............

 4.	</SignedData>

 5.	..............

 6.	<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">

 7.	    ..............

 8.	</Signature>

 9.	..............

	

    Detached 格式多用于对外部独立的数据对象进行签名,使用 URI 来引用外部数据对象,也可以引用同一 XML 文档中的其他元素,对之进行数字签名。

    表3中待签名的 XML 文档包含有两次信用卡交易的支付信息,第一个是 Simon 的信用卡交易记录,第二个是 Peter 的。本节将对 Peter的支付记录进行数字签名,所使用的签名格式是 Detached 格式。为了让 <Signature> 元素能够引用到包含有 Peter 信用卡交易信息的 XML 元素,这里用 id 属性对 Peter 的 <PaymentInfo> 元素加以引用。

3.3.1 生成签名

本节的大部分代码都与生成 Enveloped 格式签名的代码相同,只是在创建 Reference 的时候有些不同:

 1.	XMLSignatureFactory fac =

 2.	    XMLSignatureFactory.getInstance("DOM");

 3.	

 4.	// Create the reference to Peter's payment info

 5.	DigestMethod sha1DigMethod = 

 6.	    fac.newDigestMethod(DigestMethod.SHA1, null);

 7.	Reference ref = 

 8.	    fac.newReference("#PeterPayment", sha1DigMethod);

	

"#PeterPayment" 用于引用位于同一文档中的 Peter 的

上一页  [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 传世私服 传奇世界私服