java - 应用程序的私有(private)文件

标签 java android encryption cryptography

我想创建一个文件来存储一些只能由我的应用程序访问的数据。外部用户不应该能够访问这个文件或对其进行任何更改。我将在文件中存储一个 key ,也许在需要时由应用程序访问。

最佳答案

使用 Environment.getDataDirectory(), http://developer.android.com/reference/android/os/Environment.html#getDataDirectory()

这给出了一个 File 对象,它是私有(private)的、特定于应用程序的数据目录的路径。其中创建的文件归您应用的用户 ID 所有,防止任何其他应用访问它们。

File myPrivateFile = new File(Environment.getDataDirectory(), context.getPackageName() + File.separator + "secret.txt");

请注意,如果设备已获得 root 权限,则一切皆有可能。根进程可以读取设备上的任何文件。你能做的最好的就是只为设备的用户存储信息。这样一来,如果它遭到破坏,只有一个用户帐户会受到破坏。换句话说,不要存储凭据、 key 、访问 token 等。这将允许恶意代理访问服务器,从而窃取其他用户的数据。

关于java - 应用程序的私有(private)文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9766273/

相关文章:

android - 如何在 styles.xml android 中使用 android :Theme. Material(Material 主题)?

android - 从 HOME 按钮按下返回后未调用 onLoadFinished

performance - pki 与对称加密的性能差异是什么?

java - 如何拆分单词并用特定字母分隔单词?

Java:杀死由 ExecutorService 作为 Runnable 启动的线程

android - Android网络库: OkHTTP, Retrofit和Volley对比

php - PHP中的加解密算法

java - 在 apache tomcat 中部署应用程序时出错

java - 在 Java Card 上将 byte[] 转换为 short[] 的快速方法

security - 在开发过程中防止源代码被盗