@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);
}
Я использую SQLCipher, чтобы предотвратить доступ злоумышленника к данным, хранящимся в каталоге /data/data/com.applicationname/ Устройства с root-правами могут иметь доступ к каталогу data/data/com.applicationname/ правильно. Тогда использование SQLCipher не позволит пользователям войти в каталог?
Теперь я хочу убедиться, что моя база данных защищена. Как это узнать?
Я использую жестко запрограммированные пароли внутри getWritableDatabase. Это хороший способ сделать это? Или его можно взломать?
Я заменил SQLiteOpenHelper на import net.sqlcipher.database.SQLiteOpenHelper Для вставки данных в базу данных и получения данных из нее я использовал
[code]SQLiteDatabase db = this.getWritableDatabase("mypassword");[/code] вместо ниже [code]SQLiteDatabase db = this.getWritableDatabase();[/code] Ниже приведены мои onCreate и onUpgrade, [code]@Override public void onCreate(net.sqlcipher.database.SQLiteDatabase db) {
@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);
} [/code] В MainActivity [code]SQLiteDatabase.loadLibs(this); [/code] ниже приведены мои зависимости [code]implementation 'net.zetetic:android-database-sqlcipher:4.4.3' implementation 'androidx.sqlite:sqlite:2.1.0' [/code] [b]Я использую SQLCipher, чтобы предотвратить доступ злоумышленника к данным, хранящимся в каталоге /data/data/com.applicationname/[/b] [b]Устройства с root-правами могут иметь доступ к каталогу data/data/com.applicationname/ правильно. Тогда использование SQLCipher не позволит пользователям войти в каталог?[/b] [list] [*]Теперь я хочу убедиться, что моя база данных защищена. Как это узнать? [*]Я использую жестко запрограммированные пароли внутри getWritableDatabase. Это хороший способ сделать это? Или его можно взломать? [/list] [b]Также я видел ниже руководство по шифрованию. Итак, теперь я в замешательстве. Хорошо ли использовать сам SQLCipher или мне нужно сделать, как показано ниже?[/b] https://www.raywenderlich.com/778533-encryption-tutorial-for-android-getting-started%20tutorial#toc-anchor-001