我需要保存一些可能会在我的应用中稍后更改的网址。我希望没有人能看到它们并找到这些网址。
我尝试了SharedPrefences
和数据库,但任何拥有root电话的人都可以轻松访问它们。
是否有对这些数据进行编码并将其保存在SharedPrefences
中,以便我可以在应用中对其进行解密?
答案 0 :(得分:2)
encrypted-userprefs是一个很好的库,允许您加密保存的首选项。但请注意,通过逆向工程,仍然可以从APK中检索加密密钥,并且由于您使用了网址,因此您的应用可能会在网络工具(如WireShark可以观察它。
答案 1 :(得分:1)
你可以让它变得困难,但你不能让它变得不可能。
想一想:你希望你的应用可以访问这些信息(你没有这么说,但我是假设的),但其他人都无法访问。这意味着您的应用必须拥有比其他任何人更多的信息,即使是拥有手机root权限的人。
对手机具有此级别访问权限的任何人都可以访问该应用的字节码。他们可以使用它来查看您的应用程序的功能,直到最精细的细节。换句话说,您的应用程序具有哪些人无法访问的信息? 无。您的应用可以执行的任何操作,具有root权限的确定人员也可以执行。
敏感信息应始终存储在服务器端。即使这样,任何对您的服务器具有root访问权限的人都可以获取该信息(出于与上述相同的原因);但想法是每个人和他们的母亲都可以下载应用程序,但你信任的人(员工等)可以到达服务器。