如何在Java中为XML文件创建校验和

时间:2010-09-07 15:37:37

标签: java xml checksum

我需要在Java中为XML文件创建校验和。基本要求是:

  1. 元素的顺序很重要;
  2. 属性的名称 - 值对很重要,但属性的顺序不是;
  3. 忽略所有空格和注释
  4. 任何人都可以提供任何提示或示例代码吗?

    谢谢, 标记

3 个答案:

答案 0 :(得分:6)

您可以使用Java Digital XML Signature API:

  

<强> Introduction to the Java Digital XML Signature APIs

答案 1 :(得分:2)

方法1:使用XSLT规范化文档。

基本上,您将使用XSLT规范化XML文档,以便将等效文档提取到同一文档中。转型将:

  1. 维护元素顺序
  2. 订购每个元素的属性(例如,基于属性名称的字母顺序)
  3. 删除空白和评论
  4. 然后您将校验文档的规范化版本。

    一些有用的参考资料:

    方法2.使用DOM解析器

    1. 使用DOM解析器生成DOM树
    2. 根据您的规则规范化DOM树
    3. 遍历树并将XML项目提供给校验和计算器
    4. 方法3.使用SAX或StAX解析器

      如果您不喜欢生成规范化文档或DOM树的中间步骤,您可以使用SAX或StAX解析XML以便像上面那样维护/订购/剥离并提供每个元素/内容/属性/ value / etc到校验和计算器。

答案 2 :(得分:1)

检查标准W3C标准'c14n'。 +忽略空白。它甚至可以处理命名空间。在你的libarry你肯定有一个实现