我在 java 中处理 xml 序列化时遇到问题。实际上我必须为我的加密程序创建一个 xml header ,它应该如下所示:
<EncryptedFileHeader>
<Algorithm>algorithm name</Algorithm>
<KeySize>key size</KeySize>
<BlockSize>block size</BlockSize>
<CipherMode>mode</CipherMode>
<IV>initial vector</IV>
<ApprovedUsers>
<User>
<Email>mail</Email>
<SessionKey>session key</SessionKey>
</User>
</ApprovedUsers>
</EncryptedFileHeade>
*ciphered data*
其中加密数据超出 header 。 我考虑过使用 xml beans,但它给了我很多开销数据,例如节点属性和属性,例如:
<void property="approvedUsers">
<void index="0">
JAXB 提供了相当不错的 noode Lookout,但我传递的每个数据都会转换为 Base64。这是最大的问题。 “加密数据”和“ session key ”必须以纯二进制格式(byte[])存储。即使我使用 xml beans,它也是这样存储的:
<array class="byte" length="428704">
<void index="0">
<byte>43</byte>
</void>
<void index="1">
<byte>93</byte>
</void>
<void index="2">
<byte>76</byte>
</void>
<void index="3">
<byte>48</byte>
</void>
<void index="4">
...
另一种方法是具有快速信息集的 JAXB..但我想知道是否有另一个简单的解决方案来解决这个问题。
编辑: 在这里我找到了对我的问题/误解的一些解释enter link description here
最佳答案
您不能在 XML 中放置任何字节,有限制,请参阅 http://en.wikipedia.org/wiki/Valid_characters_in_XML
关于java - 字节数组java xml序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16423747/