在存储用户信息时,可以使用什么来代替共享首选项?人们说共享偏好是不安全的。
您可以将SQLCipher
库用于加密数据库,也可以使用一些密钥自己加密/解密值,并将结果存储在SharedPreferences
中。要存储密钥,请使用安卓keystone系统。
如果您将信息存储在用户的设备中,没有任何方法是100%安全的。您可以通过某些方式隐藏信息(例如编码、加密等(,但仍然不能100%安全。
为了确保信息安全,您需要将信息存储在远程服务器中。
共享首选项作为文件存储在设备的文件系统中。默认情况下,它们存储在应用程序的数据目录中,并设置了文件系统预处理,只允许特定应用程序运行时使用的UID访问它们。因此,它们是私有的,就像在任何Linux/Unix系统上一样,Linux文件权限限制了对它们的访问。
任何对设备具有根级别访问权限的人都可以看到它们,因为根可以访问文件系统上的所有内容。此外,任何与创建应用程序使用相同UID运行的应用程序都可以访问它们(通常不会这样做,您需要采取特定的操作,使两个应用程序使用同一UID运行,所以这可能不是什么大问题(。最后,如果有人能够在不使用已安装的Android操作系统的情况下安装您设备的文件系统,他们也可以绕过限制访问的权限。
如果你担心对你的偏好(或应用程序编写的任何数据(的访问,那么你会想对其进行加密。如果你那么担心,你需要弄清楚对你看到的风险级别需要多少保护
你也可以像whatsapp一样使用加密数据库。从安全角度来看,这是最好的方式。如果需要,也可以隐藏数据库。