保护XML文档的工具[Z]

xml

本文是为ZDNet翻译的系列文章之一,原文已经发表在ZDNet网站

在一个事务过程中有很多方法可以保护XML文档,其中一个最通常的方法是使用像SSL这样的安全传输层。使用SSL的不利的方面是它不能保护它所保护的网络以外的文档。在大多数的事务中,至少会涉及三个网络:你的、互联网和你的伙伴的。
为了减轻保护XML的问题,W3C已经创建了一些规范用于对XML文档进行数字签名和加密,分别称为XML Signature和XML Encryption,它们帮助保护XML事务。
唯一的问题是找到这样的工具,下面就让我们来看看一些这样的工具并检查一下它们在保护XML文档方面所提供的功能。

Apache security

当考虑XML工具的时候,第一个进入我的脑海的就是Apache Software Foundation。Apache因为它强大的Web服务器而闻名,但是它的XML工具也非常的流行。Xalan和Xerces是那些需要XML解析功能的java应用的基础。
为了延伸XML解析的成功,Apache已经建立项目开发SOAP、XSL格式化对象(Formatting Object)、SVG(Scalable Vector Graphics,可伸缩矢量图形)以及现在的XML安全产品。Apache-XML-Security-J project 提供免费的W3C的XML Encryption规范的Java实现。

IBM XML Security Suite

如果你很熟悉Apache,那么你可能也知道IBM的 alphaWorks。AlphaWorks 本质上是一个具有强大动力的研发团队,他们工作于最新和最边缘的软件技术。alphaWorks团队已经创建了XML Security Suite,它提供三种类型的文档保护:
· 认证(Authentication),它实现W3C的XML Signature规范,这个技术允许你对XML文档进行数字签名并验证数字签名。
· 数据加密(Data encryption),它基于W3C的XML Encryption规范。
· 加密工具,它允许你将XML文档全部或者部分加密为密文,以后可以解密为原始的XML文档。
最后,以IBM典型的虚张声势的风格,alphaWorks团队增加了一个被称为XML访问控制语言(XML Access Control Language)的认证层。这个技术仅仅让人们被允许访问那些文档。

XML Security Library

XMLSec Library是另外一个可以免费得到的可以为你的XML应用增加安全功能的套件。不像Apache和IBM的工具,XMLSec Library是面向C语言程序员的(他们会感激它提供源代码)。XMLSec Library支持W3C的XML Signature和XML Encryption规范,同时也支持Canonical XML和Exclusive Canonical XML规范。
它基于libxml和 libxslt (两个都来自XML C library for Gnome) 以及OpenSSL,支持几种不同的加密算法,包括Triple DES和AES。XMLSec Library Web站点包括和那三个W3C规范可以互用的文档。XMLSec以多种形式发布,包括源代码、CVS、Linux RPM以及Windows的二进制发布。

商业工具

除了那些免费的工具外,还有几种商业产品提供XML保护,就像下面的两个产品:
· KeyTools :由Baltimore Technologies开发,包括一个XML snap-in组件。KeyTools 支持W3C的XML Signature规范并提供一个基于PKI的完整的密钥管理系统。
· Java Crypto and Security Implementation (JCSI) :由Wedgetail Communications开发,使用XMLDSig支持W3C数字签名规范。XMLDSig可以使用HMAC-SHA1、带有SHA1的DSA以及带有SHA1的RSS提供对XML文档的数字签名。就像XMLSec Library一样,XMLDSig包含一个在线互用矩阵说明它和规范的实现兼容性。

时间: 2024-08-03 01:06:07

保护XML文档的工具[Z]的相关文章

xml文档转换工具,附图表例子(hta)_javascript技巧

源文档,饼图数据 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <items> <title>各指标所占比重</title> <unit>人</unit> <item> <name>指标一</name> <value>50</value> <description>1&l

在.NET里更好的创建XML文档

xml|创建 在.NET里更好的创建XML文档 作者: BUILDER.COM 创建XML文档不是一件特别困难的事,但是却是很让人乏味的,尤其是在你必须总是创建类型相似的文档的时候.使用代码来处理这些重复性的任务是行得通的.但是利用机器自动编程来创建XML文档到底有多难或者有多容易?这取决于你所使用的方法. 编写标示语言是令人乏味的任务  对于这个问题过于简单化的回答是:创建XML文档和创建文本文档是一样简单的.毕竟,XML文档只是一个文本文档.但是一个更加现实的回答是:编写标示语言可能会是令人

XPathAPI 0.3发布 XML文档节点选择工具

XPathAPI是一个Java库,提供了XPath表达式的简单方法来选择XML树形文档中的节点,这些方法可以减轻重复代码的多行编写.通过使用该软件,能让许多任务变得简单和快速. XPath定义 XPath是一门在 XML 文档中查找信息的语言.XPath 用于在 XML 文档中通过元素和属性进行导航. XPathAPI 0.3版本支持支持XPath字符串中的占位符(这样就可以避免字符串操作添加参数),和返回列表<Node>. 软件信息:https://github.com/gioele/xpa

Xml文档验证

xml 摘要:本文概述了 XML Web Service 对于开发人员的价值,同时还介绍了 SOAP.WSDL 和 UDDI. 目录什么是 XML Web Service? SOAP WSDL UDDI 其他内容什么是 XML Web Service?XML Web Service 是在 Internet 上进行分布式计算的基本构造块.开放的标准以及对用户和应用程序之间的通信和协作的关注产生了这样一种环境,在这种环境下,XML Web Service 成为应用程序集成的平台.应用程序是通过使用多

VC++中利用MSXML解析XML文档

c++|xml 四.程序实现 下面通过一个具体的实例来说明在VC++中如何利用MSXML解析XML文档. (1)源XML文档(xmlfile.xml)如下: <?xml version="1.0" encoding="GB2312"?> <Device id="10041" name="设备1"> <Type>13</Type> <TypeName>保护</Ty

动态产生XML文档的几种方式

xml|动态 当今世界,技术发展迅猛,不论是什么行业,大多数关键数据都是放置于数据库中进行管理的,一来目前数据库技术已经相当成熟,二来其管理功能非常强大.以往的数据库应用,其数据底层结构一般来说都是相对固定,也就是说,开发出来的应用程序是针对具体的数据结构,其应用范畴受到一定限制,开放性较差. XML作为一种可扩展性标记语言,其自描述性使其非常适用于不同应用间的数据交换,而且这种交换是不以预先规定一组数据结构定义为前提,因此具备很强的开放性,具有广阔的应用前景.为了使基于XML的业务数据交换成为

使用脚本验证XML文档

xml|脚本 辛苦的书写了WAP文件,却无法在微型设备上浏览,手头又没有专业的验证编辑工具,好头疼- 使用如下脚本即简单的可使用Microsoft.XMLDOM验证你的XML文档! <job id="validateWML"><script language="JScript"> if(WScript.Arguments.length==0){  WScript.echo("请拖动欲校验文件至此脚本");  WScript

创建可编辑的xml文档(之一)绑定xml文档到treeview 控件

treeview|xml|创建|控件 目录:    介绍    绑定xml文档到treeview 控件    过滤xml 数据    执行拖放操作    执行删除,改名,插入操作    使用中的treeview 控件   通过xml 和xpath 你可以毫不费力的为你的treeview控件增加拖放甚至更多的功能-by Alex Hildyard   最近,我一直在开发一个用来维护在线目录的用户界面工具,因为这个目录包含太多的产品,所以用一些方法对他们分类是很有意义的.目录管理员将需要有删除和定义

ASP.NET技巧:根据xsd生成xml文档

asp.net|xml|技巧|生成xml 现在有很多的xml工具软件都能根据xsd文件书写出xml文档,.net 没有实现此方法,如是我写了几个浏览.校验.和创建xml的方法全部代码如下: using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;us