Параметр KEY make ATTACH DATABASE возвращает ошибку: файл зашифрован или не является базой данных

У меня есть простой текстовый БД, который я использую с моим приложением для Android. Эта БД явно не зашифрована, и она функциональна (так как я часто использую ее с моим приложением для Android, и, как я могу открыть ее, например, с помощью браузера sqlite)

Однако попытка открыть его с помощью sqlcipher не работает.

Я пытаюсь этот код:

sqlite> ATTACH DATABASE 'encrypted.db' AS encrypted KEY 'testkey';
sqlite> SELECT sqlcipher_export('encrypted');
sqlite> DETACH DATABASE encrypted;

Но я автоматически получаю Error: file is encrypted or is not a database сообщение об ошибке... Кажется, что KEY параметр виноват, так как он работает без. Но мне нужно это, чтобы зашифровать мою БД. любая идея?

я использую sqlcipher 2.2.1-2ubuntu2, Открытие моей БД с помощью текстового редактора работает, и как это начинается с SQLite format 3 и содержит видимые данные, я уверен, что он еще не зашифрован. Благодарю.

1 ответ

Решение

Виноват. Ошибка исходила от того, как я дал свою базу данных в качестве параметра при запуске.

Убедитесь, что вы начинаете sqlcipher сюда:

sqlcipher MyAlreadyExistingDb.db

После размещения в хорошей папке.

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