众所周知,内部存储不是在 Android 中存储大数据的正确位置,原因有很多,这就是我们应该依赖 SD 卡的原因。我的应用需要在缓存文件夹中存储大量小视频和图像,因此我使用标准的“/sdcard/Android/cache”目录。
问题是内部存储不是那么容易读取 SD 卡,而是很容易读取和安装在其他地方。
我的想法是覆盖输入和输出文件流类以引入异或运算符或其他一些简单的“加扰”代码。这是个好主意吗?有没有更好的解决方案不会增加很多开销?
众所周知,内部存储不是在 Android 中存储大数据的正确位置,原因有很多,这就是我们应该依赖 SD 卡的原因。我的应用需要在缓存文件夹中存储大量小视频和图像,因此我使用标准的“/sdcard/Android/cache”目录。
问题是内部存储不是那么容易读取 SD 卡,而是很容易读取和安装在其他地方。
我的想法是覆盖输入和输出文件流类以引入异或运算符或其他一些简单的“加扰”代码。这是个好主意吗?有没有更好的解决方案不会增加很多开销?
您可以随时尝试加密数据。这里有一个很好的回应,你可能想看看:
如果你有很多图像,你必须有一个数据库后端,你只需要为每个图像创建一个不知道的 32 字符键,然后当你在缓存中写入文件时,将该键拆分为 4/6/8并写 4/6/8 个文件而不是一个。
这样,读取数据就不会那么容易了,因为您必须知道哪些是块,并且块顺序在存储在内部目录中的数据库上。
完全没有开销。
由于文件系统很可能是 fat 或 fat32,因此基于权限的方式保护它会更加复杂。
如果您要存储平面文本文件,我建议您找到一种复杂的算法来编码和解码以及几个“通过”。然而,它不会太安全。
如果您可以更改或转换文件系统,您可能会打开一些选项。您可以使用 ms 中的 efs。但是,如果您将卷转换为 ntfs,这将有效。我确定android无法读取该文件系统。尤其是 efs。
我建议您加密数据,并将密钥存储在私有存储中。
不要使用 xor 或类似的半生不熟的东西。这将是微不足道的解密。