使用不同的加密/编解码器编译Android SQLite

时间:2013-03-06 14:29:46

标签: android encryption sqlite

我正在尝试使用加密/编解码器(如wxSQLite或Libtomcrypt中的编译器)编译SQLite(启用SQLITE_HAS_CODEC),以便结果构建将提供加密的SQLite数据库。

但是,由于Android安全模型实现了一个安全的沙箱策略,其中没有应用程序可以读取其他应用程序数据,因此生成的SQLite(使用加密构建)是否可以透明地与所有应用程序一起使用并避免安全的沙盒策略,或者您需要配置每个项目单独使它可以将加密数据保存到SQLite?

我的意思是它会加密来自所有应用程序的数据以存储在SQLite数据库中,或者它仅适用于需要配置的一个项目。

感谢。

2 个答案:

答案 0 :(得分:1)

  

我正在尝试使用加密/编解码器(如wxSQLite或Libtomcrypt中的编译器)编译SQLite(启用SQLITE_HAS_CODEC),以便结果构建将提供加密的SQLite数据库。

我建议你使用SQLCipher for Android,它已经完成了所有这些。

  

生成的SQLite(使用加密构建)是否可以透明地与所有应用程序一起使用,并避免安全的沙盒策略

没有

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

  

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

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

答案 1 :(得分:0)

您可以将数据库写入SD卡/外部存储器,因此如果他们知道路径,其他应用程序也可以读取它。或者您可以提供一个可以执行此操作的库。