2013-03-06 67 views
0

我试图编译的SQLite(启用SQLITE_HAS_CODEC)与加密/编解码器,如一个在wxSQLite或Libtomcrypt发现,使得结果生成将提供一个加密的SQLite数据库。编译的Android的SQLite与不同的加密/编解码器

但是,由于Android安全模型实现了安全沙箱策略,其中任何应用都无法读取其他应用数据,因此生成的SQLite(使用加密生成)会与所有应用透明地工作并避免安全沙箱策略,或者您需要配置每个分开项目,以便它可以将加密数据保存到SQLite?

我的意思是将其加密数据从所有的应用程序来存储在SQLite数据库,或将只为一个项目,需要配置的适用。

谢谢。

回答

1

我试图编译的SQLite(启用SQLITE_HAS_CODEC)与加密/编解码器,如一个在wxSQLite或Libtomcrypt发现,使得结果生成将提供一个加密的SQLite数据库。

我会建议你使用SQLCipher for Android,它已经为你做了所有这些。

将产生的SQLite(建立与加密)与透明的所有应用程序的工作,避免安全沙箱策略

你可以创建自己的ROM国防部替换标准的SQLite与你加密启用。但是,没有应用程序会实际使用加密,因为它们不会要求用户输入密码并使用它。虽然你可以说你会使用硬连线的密码,但是你并没有增加任何安全性,因为任何人都可以抓取该密码,然后用它来解密数据库。

或者您需要单独配置每个项目,以便它可以将加密数据保存到SQLite?

是的,更重要的是,每个项目都需要询问用户密码。

+0

我很感兴趣,创造我自己的ROM MOD这给启用加密的SQLite的。因此,如果我们能够通过某种方式中和密码问题(我承认这是一个复杂的问题),是否有办法让结果SQLite能够透明地加密来自不同应用程序的数据。或者,我们是否可以通过修改Android体系结构的某些部分来启用该功能,或者由于与Linux内核层完全相关,因此无法启用该功能。 – user2139641 2013-03-07 10:37:29

+0

@ user2139641:“有没有办法,让所产生的SQLite能够从透明不同的应用程序数据进行加密” - 只要您修改SQLite不改变由框架代码中使用任何公共接口(例如'SQLiteDatabase') ,写入该框架代码的框架代码和应用程​​序不应受到影响。但是,我很不熟悉这种固件修补技术。 – CommonsWare 2013-03-07 11:46:16

0

你可以写你的数据库到SD卡/外部存储,因此,其他应用程序可以读取它,如果他们知道的路径。或者你可以提供一个实现它的库。

+0

我认为SD卡不像内部存储那样安全,并且可以在任何时候将应用程序保留在没有数据库数据的情况下移除。我更喜欢定位保存在内部存储中的原始SQLite数据库。无论如何感谢您的建议。 – user2139641 2013-03-10 11:29:28