我在java中有xml序列化的問題。其實我不得不做出一個xml頭到我的加密程序,它應該是這樣的:Byte array java xml serialization
<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*
,其中加密數據是從頭部的。 我考慮一個xml豆,但它給了我這樣的節點性能的開銷數據和屬性,如:
<void property="approvedUsers">
<void index="0">
JAXB給人相當不錯的諾德望風,但我每次經過數據轉換爲Base64編碼。這是最大的問題。 「加密數據」和「會話密鑰」必須以純二進制格式(byte [])存儲。即使我使用XML豆類它存儲這樣的:
<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與快速信息集..但我不知道是否有針對此問題的另一種簡單sollution。
編輯: 在這裏,我找到了我的問題/一些解釋誤會enter link description here
要以XML格式存儲任意的二進制數據,您必須將其編碼在允許的字符集內。這通常意味着base64。 – 2013-05-07 16:25:40