如何在android数据库中安全地存储数据

如何在android数据库中安全地存储数据,android,Android,我正在创建一个Android应用程序,在第一次使用时将进行电话号码验证(与Whatsapp中的情况相同)。当电话号码成功验证后,我希望以用户无法更改/更改的方式存储该号码。默认情况下,Android(SQLlite)中的数据以文本格式存储在存储器上,用户可以对其进行编辑。我想消除这个缺点。我应该使用SQLCipher来存储它吗?或者有没有其他方法来储存它? 或者有人知道Whatsapp使用哪种技术来存储此类敏感信息吗 > data in Android is stored .. on th

我正在创建一个Android应用程序,在第一次使用时将进行电话号码验证(与Whatsapp中的情况相同)。当电话号码成功验证后,我希望以用户无法更改/更改的方式存储该号码。默认情况下,Android(SQLlite)中的数据以文本格式存储在存储器上,用户可以对其进行编辑。我想消除这个缺点。我应该使用SQLCipher来存储它吗?或者有没有其他方法来储存它? 或者有人知道Whatsapp使用哪种技术来存储此类敏感信息吗

> data in Android is stored .. on the storage, which can be edited by the user.
大多数用户永远不会尝试(甚至不会意识到)这样的举动

通过abd或DDMS,你可能会遇到根设备用户或超级用户(通常是开发者)的这种行为,但坦率地说,在安卓7年的开发中,我从未遇到过一个“天真”的用户修改应用程序的数据库

但是,您应该为黑客试图访问/修改您用户的私人数据和最佳工具做好准备 我知道保护你的数据库不受这种黑客攻击是非常困难的

当涉及到非数据库机密数据存储时,请确保在手动编码加密机制之前阅读

逐字引用:

默认情况下,您在上创建的文件只能由您的应用程序访问。这种保护由Android实现,对于大多数应用程序来说已经足够了

通常应避免对IPC文件使用或模式,因为它们不能限制对特定应用程序的数据访问,也不能控制数据格式。如果你想与其他应用程序共享你的数据,你可以考虑使用A,它提供读写权限给其他应用程序,并且可以逐个地进行动态许可授予。 要为敏感数据提供额外的保护,您可以选择使用应用程序无法直接访问的密钥加密本地文件。例如,可以将密钥放置在设备中,并使用未存储在设备上的用户密码进行保护。虽然这不能保护数据不受根泄漏的影响,因为根泄漏可以监视用户输入密码,但它可以为丢失的设备提供保护,而不必担心

还要注意,在上创建的文件(如SD卡)是全局可读写的。由于外部存储可以由用户删除,也可以由任何应用程序修改,因此不应使用外部存储存储敏感信息


最后,你可能会感兴趣。

我得到了你的答案。但问题是,我只想安全地存储一个10位数的电话号码。我不需要任何大的数据库。我应该使用什么来安全地存储10位整数值?访问此链接,它详细描述了如何加密机密数据: