How to implement SQLCipher when using SQLiteOpenHelper

后端 未结 2 702
遇见更好的自我
遇见更好的自我 2021-01-04 12:32

I am trying to secure some sensible data by implementing encryption in my already existing and functioning database setup in an android application.

I tried to follo

相关标签:
2条回答
  • 2021-01-04 13:02

    In this situation how should I use SQLCipher?

    That is impossible to answer in the abstract. You would use it largely the same way that you use SQLite.

    Where should I define the password?

    You should get it from the user.

    Where should I use loadLibs(context)? Only in the main activity? Or in every activity that accesses the database?

    Once per process is sufficient (in fact, more could conceivably be a problem). If you are using a ContentProvider for your SQLCipher database, call loadLibs() in onCreate() of the ContentProvider. If you are using a custom Application, call loadLibs() in onCreate() of the Application.

    0 讨论(0)
  • 2021-01-04 13:22

    In this situation how should I use SQLCipher?

    Exactly like an normal your normal sql implementation.

    Where should I define the password?

    If you are using SQLiteHelper it will create the database when you first get it like this:

    helper.getWriteableDatabase("myPassword");
    

    On the first call it will create the database with this Password. On the upcoing calls it will only work with this password.

    ( Figured that out when i went to the Source: https://github.com/sqlcipher/android-database-sqlcipher/blob/master/android-database-sqlcipher/src/main/java/net/sqlcipher/database/SQLiteOpenHelper.java, checkout the method getWriteableDatabase( String pw ) there! )

    Where should I use loadLibs(context)?

    Right before you call helper.getWriteableDatabase("myPassword"); the first time!

    0 讨论(0)
提交回复
热议问题