阅读一些文章& stackoverflow上的线程。我发现即使是使用Context.MODE_PRIVATE
存储的文件也可以在设备生根后读取。
那么我私下存储文件的选项是什么,这些选项只能在我的应用程序中读取。
加密是我唯一的选择吗?我将保持文件加密&只有我的应用知道如何解密。
android平台是否为此提供了任何其他机制?
答案 0 :(得分:2)
实际上,对文件进行加密似乎是防止无限制访问数据的一种很好的防御措施。
Android为您提供了一系列工具来安全地加密和解密数据:
Android提供了生成新的key pairs和secret keys的方法。
答案 1 :(得分:2)
有些库提供Hawk之类的Secure Share Pref,足以满足您的目的。
答案 2 :(得分:1)
简短的答案:您不能,尽管我看到一些建议,可以使人们在当前答案中找到您的秘密更加烦人。
更长的答案:You cannot 100% guarantee the security of any data,但这是 尤其 ,如果它在别人手中的物理设备上。
APK代码本身isn't all that secure from reverse engineering(链接到在线apk反编译器)也是正确的。
话虽这么说,您有好得多的机会将数据保护在只能由经过身份验证的用户访问的服务器上。
这可能是许多级别的矫kill过正,但是Payment Cards Industry (PCI) compliance standards for data handling(带有概述的随机链接)可能是一个很好的起点,然后您可以自己决定要实际实现多少安全性。这些是存储付款卡号(BIN)的付款处理器所需的数据安全标准。
还有很多较小的支付处理器,它们将数据处理中符合PCI要求的部分外包给已经拥有基础架构的公司,由于需求高,他们自己没有投资建立标准。
我从金融科技行业的工程经验中了解所有这些PCI知识。 :)
答案 3 :(得分:0)
除上述解决方案(加密)外,另一种解决方案是 Firebase的云存储(如果您不在本地保存文件,而改用Firestore缓存):
https://firebase.google.com/products/storage
如果您的数据可以保存在数据库中(如共享首选项数据),则最好使用 Cloud Firestore :