使用SQLCipher后,我的SQLite数据库是否受到保护?

我已经用 SQLiteOpenHelper 替换了 import net.sqlcipher.database.SQLiteOpenHelper

为了将数据插入数据库并从中获取数据,我使用了
SQLiteDatabase db = this.getWritableDatabase("mypassword");

而不是下面

SQLiteDatabase db = this.getWritableDatabase();

下面是我的 oncreate 和 onUpgrade,

@Override
    public void onCreate(net.sqlcipher.database.SQLiteDatabase db) {

        db.execSQL(ARecords.CREATE_TABLE);
        db.execSQL(BRecords.CREATE_TABLE);
    }

    @Override
    public void onUpgrade(net.sqlcipher.database.SQLiteDatabase db, int oldVersion, int newVersion) {
// Drop older table if existed
        db.execSQL("DROP TABLE IF EXISTS " + ARecords.TABLE_NAME);
        db.execSQL("DROP TABLE IF EXISTS " + BRecords.TABLE_NAME);
        //Create tables again
        onCreate(db);

    }

在主活动中,

SQLiteDatabase.loadLibs(this);

下面是我的依赖项

implementation 'net.zetetic:android-database-sqlcipher:4.4.3'
    implementation 'androidx.sqlite:sqlite:2.1.0'

我正在使用 SQLCipher 来防止我的应用程序被攻击者访问存储在 /data/data/com.applicationname/ 目录中的数据

Root 设备可以访问 data/data/com.applicationname/ 目录的权限。那么使用 SQLCipher 不会允许用户访问该目录?

  1. 现在我想确定我的数据库现在是否受到保护。怎么知道呢?
  2. 我在 getWritableDatabase 中使用硬编码密码。这样做的好方法吗?或者它可能被黑客入侵?

我也看过下面的加密教程。所以现在我很困惑。使用 SQLCipher 本身很好或需要像下面的教程那样做

https://www.raywenderlich.com/778533-encryption-tutorial-for-android-getting-started%20tutorial#toc-anchor-001

提前致谢。

以上是使用SQLCipher后,我的SQLite数据库是否受到保护?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>