2016-11-10 33 views
0

我連續生成一個字符串,我需要寫入本地文件(加密)。使用AES加密「數據流」

因爲我的應用程序中已經有一個AES庫,所以我寧願使用AES - 如果可能的話。方法1:AES的塊大小爲16字節,所以我需要在內存中緩衝16字節的數據,如果計算機崩潰,我可能會丟失這些數據。方法2:首先將所有數據寫入文件,並使用AES-CBC定期對整個文件進行加密。這樣,用戶可以在短時間內訪問未加密的文件。

有沒有其他辦法?

+0

你希望電腦死機? – elyashiv

+0

不幸的是,是的。運行應用程序的計算機經常不能正常關機,而是剛剛斷電 – user66875

+0

AES可作爲流密碼。一個出發點:http://security.stackexchange.com/questions/65085/using-aes-as-a-stream-cipher –

回答

-1

由於您可能無法將15個字節寫入磁盤,請將您的數據填充到4KB的倍數(減去您需要的任何標題)並加密填充的數據。

+0

爲什麼要填充到4KB? AES通常填充爲[PKCS#7填充](https://en.wikipedia.org/wiki/Padding_(加密)#PKCS7)。 – zaph

+0

@zaph:因爲這就是你典型的文件系統所使用的(如果不是多個)。不要只關注加密部分,這裏的問題是關於停電時的持久性。 – MSalters

+0

你墊您文本文件,二進制文件等還是你讓系統,你知道,操作系統,爲你做的。它不僅僅是在磁盤上獲取它,需要創建目錄條目並且必須運行分配例程,緩存被刷新。 – zaph