2012-08-16 110 views
0

我加密数据起诉PKCS-7使用的是XML标记内该值,当我解析该XML它给我XML解析错误

[致命错误】:1:108:无效XML字符(Unicode:0x6)在文档的元素内容中找到 。错误: org.xml.sax.SAXParseException:在文档的元素内容中找到无效的XML字符(Unicode:0x6) 。

请帮我解决这个问题
非常感谢

+0

添加您的源代码你已经尝试过..所以可以帮助你更好 – gks 2012-08-16 10:09:39

回答

1

一种方式包围在二进制数据XML文档是基于-64编码的值。否则(正如您发现的那样),数据容易包含XML数据流中不合法的字符。 XML确实允许一些控制字符,但只有U + 0009(tab),U + 000A(LF)和U + 000D(CR)。当然,(a)无论你用于生成XML的系统是否具有执行base64编码的功能(如果你有一个加密库来生成PKCS7,我猜你有一个base64编码函数),以及(b)所有使用您正在生成的XML的系统都知道该值是以base64编码的。如果您使用XSD模式来定义数据源和数据接收器之间的契约,则可以很容易地使用该架构来说明所讨论的元素的值必须是base-64编码的。否则,你只需要记录下这个事实。

+0

我编码的数据,然后在处理任何事情之前把它放入xml和解码在另一端。它工作:)。 (1)失败(2)导致安全问题? – Arvind 2012-08-17 10:51:16

1

的ACK字符并没有在XML不允许的。在解析它之前,您可能会将您的PKCS-7字符串编码到XML中。