文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发JavaJava SE 6中XML数字签名标准Java接口
精品推荐
特别推荐
·实例讲解:Java中的SOAP技术
·Java语言出现的背景 影响及前景
·Java精华积累:初学者都应该搞懂的问题
·Java多媒体框架设计自动播放机实例详解
·如何有效防止Java程序源码被人偷窥?
·Cell插件在J2EE系统中的应用
·初学者想学Hibernate,初级基础教程
·Java语言实现支持视频点播的WEB服务器
·关于Java编程的中文问题的几条分析原则
·确保J2ME无线移动商业应用程序的安全性
热点TOP10
·SCJP认证套题解析(1)
·好东西介绍,直接用 java 命令行动态生成jpg文件
·JavaClassLoader与Package机制
·反射在Java Swing编程中的应用
·基于Java的界面布局DSL的设计与实现
·垃圾清理势在必行——Java垃圾收集算法
·Java应用技巧:对于 Cookie 的操作详解
·Java编译器对于String常量表达式的优化
·基于Java的界面布局 DSL 的设计与实现
·JAVA和.NET两个平台对于安全功能的比较

Java SE 6中XML数字签名标准Java接口

日期:2008年3月26日 作者: 查看:[大字体 中字体 小字体]


级别: 中级

孙 瑛霖, 软件工程师, IBM 中国软件开发实验室 SOA设计中心


2007 年 4 月 16 日

   
   
    XML 数字签名技术用于对 XML 格式的数据进行数字签名,以保证报文的完整性,不可否认性,以及提供身份认证信息。JSR 105 提供了 XML 数字签名的 Java 接口,而最近发布的 Java SE 6 则包括了 JSR 105的 实现,从而为基于 Java 的应用程序提供了标准的 XML 数字签名接口。本文首先简要介绍技术背景,以实例来讲解 XML 数字签名的语法和处理规则,之后用具体的程序例子解释如何使用 Java SE 6 生成各种格式的 XML 数字签名并进行验证。
1. 技术背景

1.1 数字签名简介

    数字签名是非对称密钥技术的一种应用模式,用于保证报文的完整性,不可否认性,以及提供身份认证信息。数字签名的原理如图 1 所示。


图 1:数字签名的原理
 

    发送者在发送报文之前,先选用某种摘要算法为报文生成一个摘要值,并使用自己的私钥对摘要值加密,然后将加密后的摘要附在报文后面,一同发送给报文的接收者。接收者收到报文后,从中分离出原始报文和加密后的报文摘要,使用与发送者相同的摘要算法计算原始报文的摘要值 D,并使用发送者的公共密钥将加密后的报文摘要解密得到摘要值 D’,检查 D 与 D’ 是否匹配。

    如果匹配,那么由于密钥对的唯一性,所以可以确定报文发送者的身份,而且由于数据摘要算法的特点,还可以确定原始报文在传输过程中没有被篡改。

1.2 XML 数字签名简介

    XML 发展至今,已经逐渐成为标准的数据描述技术,在分布式应用中广泛地用于数据的交换。由于 XML 数据本身的特殊性和使用 XML 进行数据传输的分布式应用的特点,在对 XML 文档的特定部分进行签名,多方签名,以及签名后保持 XML 文档原有的良构特性等诸多方面,传统的数字签名技术都无法很好地实现。

    基于这样的问题,W3C 组织制订了 XML 数字签名规范,规定了标准的 XML 数字签名语法和处理规则。同传统意义的数字签名相比,XML 数字签名能够对 XML 文档进行细粒度地分析,支持多种方式的文档数据转换,只对文档的特定部分进行签名和验证,并且能够保持 XML 文档的良构特性。此外,XML 数字签名提供的密钥信息表示方法清晰易读,更加便于签名的自动验证处理。

1.3 XML 数字签名实例

本节用一个简单的例子来介绍 XML 数字签名的语法和处理规则。


表 1签名前的 XML 文档

               
 1. <?xml version='1.0'?>
 2. <PaymentInfo xmlns="http://example.com/payment">
 3.   <CustomerName>Peter</CustomerName>
 4.   <Amount>10000</Amount>

 5.   <CreditCardInfo>
 6.     <ID>4392 5649 8178 2315</ID>
 7.     <Issuer>CMB</Issuer>
 8.     <Expiration>06/2010</Expiration>
 9.     <Currency>USD</Currency>
10.   </CreditCardInfo>
11. </PaymentInfo>
 


    表 1 中的 XML 文档描述了 Peter 的信用卡支付记录。在按照 XML 数字签名规范对整个文档签名之后,生成的 XML 文档如表 2 所示:


表 2 签名后的 XML 文档

               
 1. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 2. <PaymentInfo xmlns="http://example.com/payment">

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] 下一页 




上一篇:JForum 2.1.7 源程序编译草记

下一篇:Java程序最容易犯的21种错误实例分析

相关文章:
·请问网络路由器的接口种类有哪些?
·java做的比较完善的FTP连接上传下载文件
·Windows vista 标准1024X768精美壁纸
·判断一个女人爱不爱你的标准
·关于三级片和A片的区分标准
·07年全国BBS最毒30条灰色签名
·全面图解路由器接口及连接(图)(2)
·女性性发育自检标准
·IMS国际标准研究的最新进展
·LCD显示器系列知识:什么是HDMI接口?
相关软件:
·Photoshop CS中文版平面设计师标准案例教程
·企业标准化管理制度大全
·Adobe专业人士资格认证PageMaker 7.0专业资格认证标准教程
·标准合同大全
·天下第一签个性签名设计系统 V1.2
·新版标准日本语初级 单词读音MP3
·3ds max 7中文版标准教程
·06年4月16一级建造师市政实务考试真题与标准答案
·Java就业培训讲座(上)
·建筑工程施工质量验收统一标准GB50300-2001

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot