我正在構建一個Android應用程序,其中包含具有非常敏感數據的SQLite數據庫。由於任何對設備進行物理訪問的人都可以複製數據庫,所以我想到了一些解決方案來保護數據庫中的數據。我們當然可以在將其輸入到數據庫之前對其進行加密,但是由於這會妨礙實際查詢數據庫的可能性,因此會使數據庫無效。另外:如果我們將密鑰存儲在應用程序中,它將使得檢索密鑰變得非常容易,並且加密將毫無意義。如何保護我的Android應用程序中的同步數據?
所以我們同步所有數據用在登錄服務器,之後有幾個選項:
- 刪除整個數據庫中的onStop()方法。我認爲這將是非常安全的,除了應用程序崩潰時,我認爲它不會調用onStop()方法。既然你可以手動銷燬這個進程,我想假設有一個物理訪問設備的人仍然可以訪問數據庫。對?
- 使用內存中的SQLite數據庫。根據這個SO回答,雖然「到內存數據庫的每個新連接都創建一個新的空數據庫。」「。這意味着你不能在活動中分享它。
- 將同步數據存儲在一個Java Lists/Arrays中,並從中獲取所有信息。問題是這些列表只存在於一個Activity中。爲了解決這個問題,我想在一個片段內創建完整的應用程序。我還沒有開始嘗試,但它看起來並不像通常那樣做。
有沒有人知道這些想法是否有意義,更重要的是,如果沒有更好/更方便的跨應用程序活動安全地保存數據的方法?歡迎所有提示!
您是否考慮過僅在內存中存儲密鑰?爲什麼不使用用戶密碼作爲密鑰? –