Android的Sqlite加密
我有一个已经用SQLite开发的Android应用程序。 DB相当大(超过100兆),因此只能部署在SD卡上。 数据库中的数据是敏感的,因此我们需要对数据库进行加密。 手机上的默认SQLite二进制文件不允许加密或添加插件(扩展)。 我使用NDK和加密扩展来编译SQLite(我称之为SQLite-来自安全),但我仍然需要弄清楚如何复制SQLite API并将其绑定到新的SQLite二进制文件。 其思想是除了包名之外,不要使用SQLite默认API更改已经开发的代码。Android的Sqlite加密,android,api,sqlite,encryption,android-ndk,Android,Api,Sqlite,Encryption,Android Ndk,我有一个已经用SQLite开发的Android应用程序。 DB相当大(超过100兆),因此只能部署在SD卡上。 数据库中的数据是敏感的,因此我们需要对数据库进行加密。 手机上的默认SQLite二进制文件不允许加密或添加插件(扩展)。 我使用NDK和加密扩展来编译SQLite(我称之为SQLite-来自安全),但我仍然需要弄清楚如何复制SQLite API并将其绑定到新的SQLite二进制文件。 其思想是除了包名之外,不要使用SQLite默认API更改已经开发的代码。 你知道我怎样才能做到这一点吗
你知道我怎样才能做到这一点吗?我知道这不是你问题的答案,但你可以试试(免费的,开源的)。它还支持数据文件加密。但是也有一些缺点,例如一些操作相当慢。您需要使用JDBCAPI,因为SQLite/Android数据库API还不受支持。免责声明:我是H2提交者之一。我知道这不是你问题的答案,但你可以试试(免费、开源)。它还支持数据文件加密。但是也有一些缺点,例如一些操作相当慢。您需要使用JDBCAPI,因为SQLite/Android数据库API还不受支持。免责声明:我是H2提交者之一。Trp正在Android上安装本地jdbcsqlite驱动程序。 这使得sqlite3_*调用(JNI) 使用aapt工具将库(SQLite)链接到.apk文件中 另外,您可以更改sqlite3_*名称(在SQLiteS.so中),使其不引用android提供的sqlite.so文件
让我知道解决方案。trip在Android上安装本机jdbcsqlite驱动程序。 这使得sqlite3_*调用(JNI) 使用aapt工具将库(SQLite)链接到.apk文件中 另外,您可以更改sqlite3_*名称(在SQLiteS.so中),使其不引用android提供的sqlite.so文件
请告诉我解决方案。使用sqlCipher。SQLCipher是SQLite的开源扩展,它为数据库文件提供透明的256位AES加密。
请参见使用sqlCipher。SQLCipher是SQLite的开源扩展,它为数据库文件提供透明的256位AES加密。
请参见谢谢您的回答。我有一个简短的问题,你知道H2与SQLite相比有多快/慢吗?我做的主要是选择,但表格很大(>700K条记录)。使用SQLite我们可以在不到一秒钟的时间内得到结果,H2可以处理相同数量的数据吗?另外,H2在BlackBerry上工作吗?很抱歉,我不能给你一个关于性能的好答案-你必须自己测试它。H2在黑莓手机上不起作用。谢谢你的回答。我有一个简短的问题,你知道H2与SQLite相比有多快/慢吗?我做的主要是选择,但表格很大(>700K条记录)。使用SQLite我们可以在不到一秒钟的时间内得到结果,H2可以处理相同数量的数据吗?另外,H2在BlackBerry上工作吗?很抱歉,我不能给你一个关于性能的好答案-你必须自己测试它。H2在黑莓手机上不起作用。