gpt4 book ai didi

android - 使用 SQLCipher 后我的 SQLite 数据库是否安全?

转载 作者:行者123 更新时间:2023-12-03 14:31:13 27 4
gpt4 key购买 nike

我已将 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);

}
在 MainActivity 中,
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 不会允许用户访问该目录?
  • 现在我想确定我的数据库现在是否安全。怎么知道?
  • 我在 getWritableDatabase 中使用硬编码密码。这是好方法吗?或者它可能被黑客入侵?

  • 我还看到了下面的加密教程。所以现在我很困惑。使用 SQLCipher 本身很好或需要像下面的教程
    https://www.raywenderlich.com/778533-encryption-tutorial-for-android-getting-started%20tutorial#toc-anchor-001
    提前致谢。

    最佳答案

    我假设您将数据库 bundle 在 Assets 或类似的东西中,在这种情况下,无论您尝试多少,总有攻击者可以攻击您(但在大多数情况下,他们不会,因为有对他们来说什么都没有)
    但是密码可能会减慢攻击者的速度(但如果要 bundle ,您还必须将密码放入您的代码中,这意味着根本没有安全性)

    关于android - 使用 SQLCipher 后我的 SQLite 数据库是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66668775/

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