База данных Init не работает после первого неверного ввода пароля DBFlow

Поэтому, когда я пытаюсь FlowManager.init(dbConfig) с правильным паролем после того, как первый раз установил пароль, он выдает исключение net.sqlcipher.database.SQLiteException: file is not a database: , while compiling: select count(*) from sqlite_master; если я попытаюсь открыть, закрыть или любую операцию SQL FlowManager.getConfig().closeDB, FlowManager.getDatabase().isDatabaseIntegrityOk, По этой теме

SQLCipher для Android не знает, что введенный вами пароль недействителен после вызова sqlite3_key, так как ключ базы данных не используется до тех пор, пока не будет введена команда SQL для базы данных, следующей за sqlite3_key, такой как метод setLocale(...) Вы ссылаетесь выше. Проблема в том, что предоставление неверного ключа может быть только одним из возможных других сценариев, которые могут быть проблемой в момент выполнения первого оператора SQL. Поврежденный файл данных, неудачная проверка HMAC или открытие файла без базы данных могут привести к тому же сообщению об ошибке. Для подробного описания этого, пожалуйста, просмотрите эту тему. Было бы лучше перехватить исключение при попытке открыть базу данных и соответственно обработать ее в клиентском приложении.

если я не могу выполнить какой-либо оператор sql после инициализации базы данных с неверным паролем, что я должен сделать, чтобы снова получить доступ?

0 ответов

Другие вопросы по тегам