如何开始使用SQLCipher for android?

Ran*_*ser 17 database android sqlcipher android-sqlite

我需要使用SQLCipher for android ...我已经使用SQLite创建了我的应用程序,并希望将其转换为SQLCipher.

问题是,我对SQLCipher一无所知.

我在这个链接中读过它:http://sqlcipher.net/sqlcipher-for-android/

但我还是不太清楚.我想知道你是否可以为Android教程提供一些基本的sqlcipher,其中所有内容都是从绝对基础知识中轻松教授的.

谢谢!

小智 25

要正确使用SQL Cipher for Android,您必须使用外部库并更改与数据库交互的一些代码.

  1. 这些必须首先添加到您的项目中(在libs文件夹中.)请参考此处获取这些:http://sqlcipher.net/sqlcipher-for-android/

  2. 其次,您需要将icudt4dl.zip文件添加到您的assets文件夹,此Zip附带SQL Cipher库.

  3. 右键单击您的项目,转到属性,然后转到Java构建路径,然后包含诸如commons-codec.jar,guava-r09.jar,sqlcipher.jar之类的库.完成后,执行构建清理.

  4. 然后在您的应用程序中,您将导入import net.sqlcipher.database而不是导入android.database.sqlite

  5. 更改与DB交互的任何代码,例如:

    SQLiteDatabase.loadLibs(上下文);

    String dbPath = this.getDatabasePath("dbname.db").getPath();

    SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbPath,"dbPassword",null);

  6. 验证数据库是否已加密,转到Eclipse中的DDMS透视图,单击文件资源管理器选项卡,导航到data/data /,单击.db文件并选择获取设备文件,将其保存到桌面并使用文本打开它编辑.查找已插入数据库的纯文本值,如果仍然可以读取它们,则会出现问题.

在实现SQL Cipher之前查看一些SQLite教程可能也是一个好主意.这里提到一个好的: Android sqlite数据库 - 我在哪里开始教程已经用于记事本?

更新

这个答案现在已经过时了,而Eclipse实际上已经不适用于Android开发了.我最近不得不在Android Studio for Android 5 + 6上使用SQLCipher构建应用程序,这些是我遵循的步骤.

在Android Studio中,您可以在构建文件中包含SQLCipher作为依赖项.更新build gradle中的依赖项以包含以下行:

dependencies{
    compile 'net.zetetic:android-database-sqlcipher:3.5.4@aar'
}
Run Code Online (Sandbox Code Playgroud)

您可以在此处了解最新版本:https: //mvnrepository.com/artifact/net.zetetic/android-database-sqlcipher

除非我删除了lib文件夹和资产文件夹中的SQLCipher文件,否则我的应用程序不会构建,但之后它按预期工作.完成这些更改后,运行构建/清理并检查它是否有效.

上面提到的改变代码的步骤仍然有效.

  • 请参阅此帖子,因为它更新:http://stackoverflow.com/a/34309425/684582 (2认同)

lom*_*mza 8

虽然您仍然可以按照Zetetic的Eclipse教程自行添加.so库,但您真的不需要在Android Studio中执行此操作.只需添加一个Gradle依赖项,就像compile net.zetetic:android-database-sqlcipher:3.3.1-2@aar你已经准备好了!

在这里,您可以随时查看最新的aar版本,在这里您可以阅读有关集成的更多信息.