3

我有一个难题,我需要在我的 Android 设备上保存一些安全数据,这些数据是个人文件柜的登录信息,所以请你给我一个建议,将这些信息保存到简单的 txt 文件中更好的位置(但是安全性呢? ?)或者Android平台中是否有MySQL DB的模拟(以及我如何访问它)?

4

4 回答 4

3

在 Android 应用程序中存储个人数据的最佳方式是使用私有模式的共享首选项,这样除了您的应用程序之外,没有人可以访问该数据。有关更多详细信息,请参阅此处有关共享首选项的 Android 开发人员提示

于 2013-03-04T12:20:29.320 回答
1

您可以将简单的 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();
}

但是,如果目标设备是根设备,其他应用程序可以访问您的文件。因此,更好的方法是加密您的数据,并将其保存到应用程序目录中。

对于数据库方法,它也有同样的问题,您可以定义自己的内容提供程序而不将其导出,但它在有根设备上仍然容易受到攻击。因此,无论您选择什么,写入 txt 文件或将其存储在数据库中,都必须先对其进行加密。

于 2013-03-04T11:56:58.917 回答
1

AFAIK 你不能在安卓设备上运行 MySQL,但你可以使用SQLite教程)。您甚至可以尝试使用SQLCipher将其存储在加密数据库中。尽管有人告诉我从 APK 中提取访问密钥并不难。

存储密码时,请确保对其进行加密(即使您正在加密数据库)。将密码存储为纯文本很少是一个好主意;)

无论您做什么,都不要将其存储在文本文件中!

于 2013-03-04T11:53:52.397 回答
0

您可以将详细信息存储在 android 上的 SQLdb 中,但使用加密保存所有表单详细信息并保留字符串。

您可以在下面的答案中看到有人使用完全相同的技术并使用 phoneId 进行加密的示例(尽管我不确定这到底有多安全)。

将用户名 + 密码存储在 Android 的本地 SQLite 数据库中是否安全?

于 2013-03-04T11:56:03.683 回答