簡體   English   中英

Android在哪里保存個人數據?

[英]Android where to save personal data?

我有一個兩難的境地,我需要在我的Android設備上保存一些安全數據,這些數據是個人機櫃的登錄信息,所以請你給我一個建議,哪里更好地將這些信息保存到簡單的txt文件中(但安全性如何? ?)或者Android平台中是否存在MySQL DB的模擬(以及我如何訪問它)?

在Android應用程序中存儲個人數據的最佳方法是使用私有模式的共享首選項,這樣任何人都無法訪問除應用程序之外的其他數據。 有關詳細信息,請參閱有關共享偏好Android開發技巧在這里。

您可以將簡單的txt文件保存到應用程序目錄中。 通常,Android會為每個應用程序分配一個唯一的uid。 每個應用程序都有自己的應用程序目錄,模式為660.因此其他應用程序無法訪問其內容。 要編寫自己的應用程序目錄,可以使用以下代碼:

String filename = "myfile";
String string = "Your security content";
FileOutputStream outputStream;

try {
  outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
  string = encrypt(string);
  outputStream.write(string.getBytes());
  outputStream.close();
} catch (Exception e) {
  e.printStackTrace();
}

但是,如果目標設備是root設備,則其他應用程序可以訪問您的文件。 因此,更好的方法是加密數據,並將其保存到應用程序目錄中。

對於數據庫方法,它有同樣的問題,您可以定義自己的內容提供程序而不將其導出,但在root設備上仍然容易受到攻擊。 所以無論你選擇什么,編寫txt文件或將其存儲在DB上,首先加密它是必要的。

AFAIK你不能在Android設備上運行MySQL,但你可以使用SQLite教程 )。 您甚至可以嘗試使用SQLCipher將其存儲在加密數據庫中。 雖然我被告知從你的APK中提取訪問密鑰並不太難。

當您存儲密碼時,請確保對其進行加密(即使您正在加密數據庫)。 將密碼存儲為純文本很少是個好主意;)

無論你做什么,都不要將它存儲在文本文件中!

您可以將詳細信息存儲在Android上的SQLdb中,但使用加密保存所有表單詳細信息並僅保留字符串。

你可以在下面的答案中看到一個人做同樣技術並使用phoneId進行加密的例子(雖然我不確定它到底有多安全)。

在Android中的本地SQLite數據庫中存儲用戶名+密碼是否安全?

暫無
暫無

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

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