android - android Room 数据库存储敏感数据安全吗?

标签 android security android-room reverse-engineering

我正在一个项目中工作,我必须将数据从服务器获取到本地数据库。我正在考虑房间数据库,它是 android Jetpack 组件的一部分(我猜)。我在堆栈溢出中搜索了很多关于在房间中存储数据是否安全的信息? ,但没有一个能让我满意。虽然互联网上没有什么是安全可靠的,但我只是想破解房间数据库的可能方法是什么?

简而言之,我只是想知道将数据本地存储在 Room 数据库中是否安全?请问有人可以告诉我 Room 数据库是否安全吗?或者如何通过逆向工程获得房间数据库?

最佳答案

Room 将其 sqlite 文件存储在应用程序的内部数据目录中,因此其他应用程序无法访问(包括用户,只要手机未 root)。

对于正常使用情况来说应该没问题。如果您需要额外的安全层,您可以使用 SqliteCipher 来加密您的数据库。您可以直接使用带有room的sqlcipher。

final byte[] passphrase = SQLiteDatabase.getBytes(userEnteredPassphrase);
final SupportFactory factory = new SupportFactory(passphrase);
final SomeDatabase room = Room.databaseBuilder(activity, SomeDatabase.class, DB_NAME)
  .openHelperFactory(factory)
  .build();

了解更多信息:https://github.com/sqlcipher/android-database-sqlcipher#using-sqlcipher-for-android-with-room

关于android - android Room 数据库存储敏感数据安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62770394/

相关文章:

android - Regexp_substr() 函数等效于 Android 中的 RoomDatabase

android - 无法更新房间数据库项目

java - 需要 Android OpenGL 帮助

java - Android:格式化字符串并添加粗体样式

android - 在 Activity 之间传递文本

windows - 在 Windows 中运行 .bat 文件是否会生成任何系统日志?

java - 如何使用 MSCAPI 提供程序进行客户端 SSL 身份验证

android - 应用服务器通信协议(protocol)