我在Borland的Delphi編寫具有一個dBASE數據庫文件的應用程序7.使用加密文件安全
注:我認爲這個問題是文件的安全性相關的,你可以忘記的dBASE東西(考慮它作爲一個TXT文件)在這個問題。
只能由應用程序訪問數據庫。然後它必須被加密。不幸的是,dBASE不支持任何密碼機制,我必須自己加密文件(並且我也必須使用dBASE)
您建議如何保護數據庫文件?
簡單的一種是:
- 加密數據庫文件和將它放在應用程序的EXE文件的旁邊。
- 當應用程序運行時,它應該解密文件(使用硬編碼密碼)並將結果複製到一個臨時文件,該文件有
DeleteOnClose
和NoSharingPermission
標誌。 - 關閉時,應用程序應該加密臨時dBASE文件並用新文件替換舊的加密文件。
我認爲這是一個公平的安全方法。但它有兩個大問題:
- 使用未刪除的工具,用戶可以恢復和訪問已刪除的臨時文件。
- 更糟:應用程序運行時,如果系統突然重啓,
DeleteOnClose
標誌失敗,臨時文件保留在硬盤上,用戶可以訪問它。
是否有解決方案,至少,第二部分?
有沒有其他解決方案?
長鏡頭:你能創建一個RAM驅動器並將解密的數據文件放在那裏嗎? – 2010-01-10 14:26:29
只要您對密碼進行了硬編碼,根本就沒有安全的解決方案。你將不得不讓你的用戶選擇密碼,那麼你就不必將它存儲在任何地方。 – Leo 2010-01-10 14:34:04
@Mef:我不想尋求一個非常強大的解決方案。密碼將由硬編碼字符串動態生成,因此找到正確的密碼並不容易。 – Isaac 2010-01-10 14:55:22