gpt4 book ai didi

SQLCipher 与 DBFlow

转载 作者:行者123 更新时间:2023-12-02 23:10:07 25 4
gpt4 key购买 nike

我使用过 DBFlow,它在数据库方面非常简单,但我想问是否有一个很好的例子来将 SQLCipher 与 DBFlow 一起使用

我已通过此链接寻求帮助

Raizlabs/DBFlow

但是,如果有人可以提供一些简单的示例,那么对于通过简单的步骤创建安全的数据库应用程序将非常有帮助。

最佳答案

ConductedClever 链接的使用文档看起来并不多,但这确实几乎是您所需要的。除了一些可以提及的细节:

我必须将 @aar 添加到 build.gradle 中的 dbflow-cipher 依赖项中,以使其首先通过 gradle:

// build.gradle
def dbflow_version = "3.1.1"
def sqlcipher_version = "3.5.4"

dependencies {
annotationProcessor "com.github.Raizlabs.DBFlow:dbflow-processor:${dbflow_version}"
compile "com.github.Raizlabs.DBFlow:dbflow-core:${dbflow_version}"
compile "com.github.Raizlabs.DBFlow:dbflow:${dbflow_version}"
compile "com.github.Raizlabs.DBFlow:dbflow-sqlcipher:${dbflow_version}@aar"
compile "net.zetetic:android-database-sqlcipher:${sqlcipher_version}@aar"
}

根据需要更改密码:

// SQLCipherHelperImpl.java
public class SQLCipherHelperImpl extends SQLCipherOpenHelper {

public SQLCipherHelperImpl(DatabaseDefinition databaseDefinition, DatabaseHelperListener listener) {
super(databaseDefinition, listener);
}

@Override
protected String getCipherSecret() {
return "your-cipher-secret";
}
}

如果您遵循dbflow getting started guide如果您的数据库名为 AppDatabase,那么这是您在初始化 DBFlow 时应传递给 new DatabaseConfig.Builder(AppDatabase.class) 的类:

// AppDatabase.java
@Database(name = AppDatabase.NAME, version = AppDatabase.VERSION)
public class AppDatabase {

public static final String NAME = "AppDatabase";

public static final int VERSION = 1;
}

// DatabaseApplication.java
public class DatabaseApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
FlowManager.init(new FlowConfig.Builder(this)
.addDatabaseConfig(
new DatabaseConfig.Builder(AppDatabase.class)
.openHelper(new DatabaseConfig.OpenHelperCreator() {
@Override
public OpenHelper createHelper(DatabaseDefinition databaseDefinition, DatabaseHelperListener helperListener) {
return new SQLCipherHelperImpl(databaseDefinition, helperListener);
}
})
.build())
.build());
}
}

导出您的数据库并尝试在 SQLite 客户端中打开它。由于加密,现在应该会失败。

关于SQLCipher 与 DBFlow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37939513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com