据我了解,可以检索SharedPreferences
中存储的数据。因此,它不安全。有人可以建议我完全保护数据吗?我知道加密和存储数据是可能的,但我想知道,还有其他办法吗?
答案 0 :(得分:3)
存储在SharedPreferences中的数据(如果使用Context.MODE_PRIVATE创建)只能由您自己的应用程序访问。
但是,如果用户手机已植根,则根应用程序可以读取数据(即使使用Context.MODE_PRIVATE创建)。
永远无法避免这种情况。但您可以采取预防措施,例如在SharedPreferences中加密数据 一个很好的例子是SecurePreferences库:https://github.com/scottyab/secure-preferences
答案 1 :(得分:0)
共享首选项作为文件存储在设备的文件系统中。默认情况下,它们存储在应用程序的数据目录中,文件系统预设集仅允许特定应用程序运行的UID访问它们。
因此,它们是私有的,因为Linux文件权限限制了对它们的访问,就像在任何Linux / Unix系统上一样。
对设备具有根级访问权限的任何人都可以看到它们,因为root可以访问文件系统上的所有内容。
如果您担心此类访问权限(或您的应用程序编写的任何数据),那么您需要对其进行加密。你可以谷歌了。
答案 2 :(得分:0)
尝试使用此https://prashantsolanki3.github.io/Secure-Pref-Manager/轻松使用共享偏好设置,它还会在将密钥和值保存到偏好设置之前对其进行加密。
保存值的示例代码:
SecurePrefManager.with(this)
.set("user_name")
.value("LoremIpsum")
.go();