Могу ли я шифровать SQLite базу данных?

Я использую базу данных SQLite версии 3 с приложением Windows С#. Я хочу зашифровать файл базы данных SQLite с помощью пароля или любого другого способа шифрования, чтобы клиенты не открывали их из папки программных файлов.

Мне не нужны никакие способы шифрования во время выполнения, я просто хочу, чтобы файл базы данных отображал поле пароля, когда клиент пытается открыть его из файлов программы. thanks

Edit

и если я зашифровал его из кода, клиент может открыть его, когда установка завершена и файл db передан в файлы программы, прежде чем открывать программу для выполнения шифрования, не так ли?

Ответы

Ответ 1

Я использую SQLite версии 3, отлично работает! Вы должны сделать это:

//if the database has already password
try{
            string conn = @"Data Source=database.s3db;Password=Mypass;";
            SQLiteConnection connection= new SQLiteConnection(conn);
            connection.Open();
            //Some code
            connection.ChangePassword("Mypass");
            connection.Close();
    }
//if it is the first time sets the password in the database
catch
    {
            string conn = @"Data Source=database.s3db;";
            SQLiteConnection connection= new SQLiteConnection(conn);
            connection.Open();
            //Some code
            connection.ChangePassword("Mypass");
            connection.Close();
    }

после этого, если пользователь пытается открыть базу данных. скажет, что защищен администратором или база данных зашифрована или не является базой данных или поврежденным файлом!

Ответ 2

Нашел в этом форум сообщение, указывающее, что..

Standard SQLite3 API doesn't offer any form of protection and relies only on underlying OS privileges mecanism (if any) for "security". If you have an existing SQLite-style database which uses a specific API to gain access, then you should use this particular (non-standard) API.

Если вы можете/хотите использовать какое-то расширение для SQLite, вы также можете попробовать Расширение расширения SQLite (SEE) или SQLite Crypt

Но вы можете изменить/установить пароль для своей базы данных , используя SQLite.Data​​strong > , как показано в в этой статье.

Ответ 3

К сожалению, пароль в SQlite файле может быть добавлен или удален или изменен только из кода. Для этого вам нужно пространство имен System.Data.SQLite, которое предоставит вам методы, а также файлы адаптеров и соединений для этого.