簡體   English   中英

如何將加密數據寫入文本文件?

[英]How to write encrypted data to a text file?

我有一個項目,我們每5分鍾向文件寫入少量數據。 想法是查看這些數據在幾小時,幾天和幾周內的變化情況。

要求之一就是以安全格式存儲此數據。 我們已經有了一種加密方案,可以通過DataI / O流以字節[]數組的形式在網絡上發送此數據。

我的問題是,是否可以通過一種方式將加密的byte []數組寫入文本文件,以便可以將它們讀出來? 目前,我最大的問題是我正在從文件中讀取字符串,這弄亂了byte []數組。

關於去哪里有任何想法或指示?

您需要做的是將數據放入字節數組。 然后,將其放入字節數組后,即可使用加密算法對其進行加密。 然后將其寫入文件。

當您想要取回原始數據時,您必須從文件中讀取字節數組,然后解密該字節數組,然后您將擁有原始數據。 您不能僅以字符串形式讀取此數據,因為加密算法將創建無法表示為常規字符的字節,因此您的數據將被弄亂。

只要確保您將加密的數據讀取為字節數組而不是字符串即可,這就是您遇到的問題。


如果要將多個字節數組寫入單個文件,則可能應該執行以下操作,因為您正在使用Java:

writer.print(arr.length);
writer.print(arr);
writer.flush();

對每個字節數組執行此操作。 然后,當您讀回字節數組時:

int length = reader.readInt();
byte[] bytes = new byte[length];
// fill array

這樣,文件的結構可以像這樣:

[后續數組的長度] [array] [第二數組的長度] [second array]

您將能夠將所有字節數組背對背放置,並且由於每個數組都以數組的長度開始,因此您將知道每個數組中需要放入多少數據。

有關AES + CBC Java示例的示例,請參見如何附加到AES加密文件 ,該示例允許打開一個已加密的文件並將更多的加密數據附加到in中,同時在解密時不需要任何特殊處理,因為它看起來就像整個文件僅被加密一次。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM