科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Java SE 6中XML数字签名标准Java接口

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文首先简要介绍技术背景,以实例来讲解 XML 数字签名的语法和处理规则,之后用具体的程序例子解释如何使用 Java SE 6 生成各种格式的 XML 数字签名并进行验证

作者:孙 瑛霖, 来源:IT专家网 2008年4月23日

关键字: 接口 签名 XML SE 6 java

  • 评论
  • 分享微博
  • 分享邮件
 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 数字签名提供的密钥信息表示方法清晰易读,更加便于签名的自动验证处理。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章