Да, я знаю, что можно попытаться подключиться к базе данных SQLite, а затем использовать try-catch, если требуется пароль. Это не чистый код. Я ищу более разумный способ определить, зашифрован ли файл .sqlite, прежде чем пытаться подключиться к нему. Я использую dll System.Data.sqlite для этого проекта.
С# Определить, зашифрован ли файл базы данных SQLite паролем
Ответы (2)
Вам нужно будет проверить сам файл основной базы данных SQLite.
Выдержка из Формат файла базы данных SQLite:
1.2.4. Количество зарезервированных байтов на странице
SQLite имеет возможность откладывать небольшое количество дополнительных байтов в конце каждой страницы для использования расширениями. Эти дополнительные байты используются, например, расширением шифрования SQLite для хранения одноразового номера и/или криптографической контрольной суммы, связанной с каждой страницей.
person
Black Frog
schedule
11.01.2016
Есть ли пример, который вы могли бы привести?
- person LeChosenOne; 11.01.2016
У меня нет примера, потому что я не использую SQLite в своей повседневной работе, особенно с шифрованием. Я просто предложил решение, основанное на документации, которую я нашел.
- person Black Frog; 11.01.2016
Единственный вариант - попытаться поймать. Поскольку весь файл базы данных зашифрован, включая метаданные, конкретный бит, который вы можете протестировать. Но я считаю, что try-catch подходит для обработки неправильного или отсутствующего пароля.
person
Ed Power
schedule
03.06.2016