XSLT是由W3C定义的一种对XML进行转换的语言。它的出现使得构建XML文档或者对文档或文档中的元素进行运算变得更加方便快捷,同时还提供了高级声明编程语言的所有好处,如果把加密和解密

看作是一种XML的转换操作,即从加密的XML转换到未加密的XML,反之亦然,那么XSLT将能很好的完成这一工作。使用XSLT进行元素XML加密就可以很好的避免上诉方法中部署和维护专用的处

理器的麻烦。因为它只需要一个标准的处理器,所有XML的安全操作都将被限制在样式表中,而不涉及XSLT处理器

一个使用XSLT实现的XML加密/解密的过程如图所示:

XSLT怎样实现对XML文档的元素级加密?

一个实现XML加密或解密的样式都是由3部分组成:

1、用于匹配XML文档中对应标签的模版声明。这样就可以保留XML文档中所包含的文档结构。为了在输入文档中保留原文档的结构,每一个标签都需要在样式表中有一个相匹配的模版以便进行复

制。根据W3C的建议,XSLT处理器将默认的丢弃那些没有匹配的标签,这是我们所不愿意看到的;

2、扩散函数。用于对XML中的文本字符串进行加密和解密。

3、属性识别与复制。一些包含在源XML文档中的属性被要求复制到输出文档中,而另一些则要求被舍弃。这也是通过模版匹配来实现。使用包含扩展函数的XSLT进行XML文档加密解密的框架如图所示:

XSLT怎样实现对XML文档的元素级加密?

在这个框架中XSLT处理器接受一个样式表和一个源XML文档作为输入,并利用样式表中的扩展函数与外部的加密解密进行交互,以生成加密加密的目标的XML文档。