Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android上加密sqlite数据库的轻量级机制,无需提供定制的sqlite分布_Android_Database_Sqlite_Encryption_Android Sqlite - Fatal编程技术网

在android上加密sqlite数据库的轻量级机制,无需提供定制的sqlite分布

在android上加密sqlite数据库的轻量级机制,无需提供定制的sqlite分布,android,database,sqlite,encryption,android-sqlite,Android,Database,Sqlite,Encryption,Android Sqlite,我正在构建一个android应用程序,希望在其中维护sqlite数据库中的某些细节。我使用SQLiteOpenHelper接口为访问数据库的所有线程维护数据库的单个实例 出于安全原因,我希望加密数据库,因为如果数据库文件未加密,则可以在根安卓设备上查看数据库文件。 为了避免这种情况,我想加密数据库文件。 我已经看过SEE、wxSQLite、SQLiteCrypt和sqlite3,但它们都要求将SQLite的cutomized发行版发布到android设备上。 我想用Android附带的SQLit

我正在构建一个android应用程序,希望在其中维护sqlite数据库中的某些细节。我使用SQLiteOpenHelper接口为访问数据库的所有线程维护数据库的单个实例

出于安全原因,我希望加密数据库,因为如果数据库文件未加密,则可以在根安卓设备上查看数据库文件。 为了避免这种情况,我想加密数据库文件。 我已经看过SEE、wxSQLite、SQLiteCrypt和sqlite3,但它们都要求将SQLite的cutomized发行版发布到android设备上。 我想用Android附带的SQLite的正态分布来保护我的数据库文件

我还尝试使用SQLCipher,但它将我的应用程序的总大小增加了8-10MB。不使用SQLCipher的另一个原因是它不支持mips architecure,但这可以在以后的源代码中进行一些修改来构建

此外,我的数据库将被多个线程访问和更新,并将一直由服务加载,因此在加载/打开时解密数据库,在卸载/关闭时加密数据库对我来说不起作用。应该可以只在加密数据库上启动查询,或者应该有一些替代解决方案,比如创建临时数据库、解密它并对其执行操作

有人能给我推荐一个轻量级的解决方案,用于在android设备上加密SQLite数据库吗


提前感谢。

在根设备上,可以从应用程序中读取加密密钥。您将如何防止这种情况发生?我可以在运行时接受用户的密钥,但如果有其他更好的解决方案,那就太好了。此外,我还可以混淆我的应用程序的代码,从而使反编译更加困难。