簡體   English   中英

使用AES的Java加密文件-最佳方法

[英]Java encryption files using AES - Best Methods

我一直在尋找使用哪種密碼,方法/等方面的最佳加密方法。 我決定暫時使用128Bit AES。 我的問題更多在於哪種方法最適合加密各種類型的數據。 在我的示例中,這是針對我正在制作的具有地圖數據和關聯的圖像數據的小型游戲。

我可以將數據保存為任何格式,但希望使用易於閱讀的內容(未加密時)。 我應該將其實際保存到文件本身,還是應該以某種方式更改文件本身?

同樣,就與游戲相關的圖像文件另存為PNG或BMP文件而言,關於如何在其余文件之上進行加密的任何建議?

我當前用於游戲數據的方法是僅以單行對其進行加密-並逐行從文件中加載它。 每行格式化為不同的數據值以放入系統中(例如,加載地圖的一部分,也許是某些商品數據等)。 有沒有更好/更快的方法可以完成我可能還沒有找到的方法?

我還想知道實際上是將整個類與保存的數據一起進行序列化-然后對其進行加密。 這樣,我就可以將整個內容直接加載到一堂課中。 這是一個合理的想法嗎?

對於圖像:您可以使用CipherInputStream / CipherOuputStream讀取它們。 請注意, 至少較舊的Java版本忽略了CipherInputStream填充錯誤。

由於密碼的輸出是二進制的,因此無法直接加密到行。 因此,如果要將結果存儲為行,則需要進行編碼(例如使用Base64)。 您可能會問自己,是否要將諸如游戲數據之類的內容顯示為文本。 我建議使用隨機IV前綴為密文的CBC模式。

如果數據可序列化,則可以選擇序列化數據。 由於很多陷阱,我個人不是Java序列化的忠實擁護者。 但是,是的,您當然可以輕松地加密序列化數據,畢竟它是二進制的。

暫無
暫無

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

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