2016-06-21 29 views
1

Ich habe mit DBFlow gearbeitet, das ist ganz einfach um Datenbank zu spielen, aber ich will, ist es ein gutes Beispiel fragen SQLCipher mit DBFlow verwendenSQLCipher zusammen mit DBFlow

ich diesen Link, um Hilfe folowed habe

Raizlabs/DBFlow

Aber wenn jemand ein einfaches Beispiel bereitstellen kann sehr hilfreich sein, um sichere Datenbankanwendung mit einfachen Schritten zu erstellen.

+0

Haben Sie irgendeine Lösung für DBFlow Datenbank mit SQLCipher verschlüsseln ?? –

Antwort

0

Ich habe es noch nicht versuchen, aber dies ist die Verwendung doc, dass der offizielle Entwickler bietet über die Verwendung von SQLcipher:

SQL Cipher & DBFlow

1

Die Verwendung doc von ConductedClever verknüpft sieht nicht wie viel, aber das ist in der Tat fast alles, was Sie brauchen. Mit Ausnahme einiger Details, die erwähnt werden könnten:

hatte ich @aar zum dbflow-Chiffre Abhängigkeit in build.gradle hinzufügen es vorbei gradle in erster Linie zu bekommen:

// 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" 
} 

Ändern der Chiffre Geheimnis

// SQLCipherHelperImpl.java 
public class SQLCipherHelperImpl extends SQLCipherOpenHelper { 

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

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

Wenn Sie die dbflow getting started guide und Ihre Datenbank gefolgt heißt AppDatabase dann ist dies die Klasse, die Sie new DatabaseConfig.Builder(AppDatabase.class) passieren soll, wenn DBFlow Initialisierung: als bevorzugte

// 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()); 
    } 
} 

Exportieren Sie Ihre Datenbank und versuchen Sie, sie in einem SQLite-Client zu öffnen. Dies sollte jetzt wegen der Verschlüsselung fehlschlagen.