2011-10-22 74 views
1

我有一個存儲XML加密文檔的應用程序,每次應用程序想訪問它必須的XML文件(解密 - >讀 - >寫 - >加密)。如果從任務管理器突然關閉或重新啓動甚至是任務管理器的結束任務,都將導致XML中的數據損壞或未加密的XML文件,因此在下一次運行時,它將產生錯誤。檢測並處理應用程序突然結束,重新啓動和關閉?

我所想要的是將XML的全部內容存儲在數據庫中,並檢查是否有任何錯誤,然後替換舊內容。

任何想法,提示或想法非常讚賞。

回答

2

您應該在內存中執行解密/加密。永遠不要將未加密的數據存儲在磁盤上。加載加密數據,將其解密到內存中。保存時,首先在內存中加密,然後存儲。

即使在突然關機的情況下,以安全的方式替換文件的全部內容也很困難。解決方法是在臨時名稱下創建一個新文件,並在完全寫入磁盤時刪除舊文件並重命名新文件。這還有其他一些影響,比如文件丟失的特定安全權限。

一個更好但更高級的選項是將所有內容都移動到具有事務支持的數據庫中。

+0

你在記憶中是什麼意思? – ykh

+0

+1。交易支持可以包括可以用於鏈的哪一步完成的日誌。好主意。 –

+0

@ user733659:內存= RAM。 –

相關問題