2012-08-16 109 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中。