Главная страница » Статьи и уроки » C# статьи » Защита паролем SqLite DB
Опрос
Какие статьи добавлять?
Выделенные и виртуальные серверы в Европе

Защита паролем SqLite DB

Автор: administrator Дата: 16-09-2018, 01:28 Категория: Статьи и уроки / C# статьи

Как защитить паролем SQLite3.


Перед выполнением каких-либо операций установите пароль следующим образом:

SQLiteConnection conn = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;");
conn.SetPassword("password");
conn.open();


Подключение к базе с паролем осуществляется следующим образом:

conn = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;Password=password;");
conn.Open();


Установленный пароль не позволит графическому редактору просматривать ваши данные.
Некоторые редакторы могут расшифровать БД, если вы укажете пароль. Используемый алгоритм RSA.

Если вам нужно изменить пароль, используйте:

conn.ChangePassword("new_password");


Для того, чтобы очистить (reset), или удалить пароль, используйте:

conn.ChangePassword(String.Empty);


Также Вы можете использовать встроенное шифрование поставщика sqlite.net(System.Data.SQLite).
Подробнее см. sqlite.phxsoftware.com

Чтобы зашифровать существующую незашифрованную базу данных или, чтобы изменить пароль зашифрованной базы данных, откройте базу данных и затем используйте функцию ChangePassword() в SQLiteConnection:




// Opens an unencrypted database
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3");
cnn.Open();
// Encrypts the database. The connection remains valid and usable afterwards.
cnn.ChangePassword("mypassword");


Чтобы расшифровать существующую зашифрованную базу данных, вызов ChangePassword() с паролем NULL или "":

// Opens an encrypted database
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3;Password=mypassword");
cnn.Open();
// Removes the encryption on an encrypted database.
cnn.ChangePassword(null);


Чтобы открыть существующую зашифрованную базу данных или создать новую зашифрованную базу данных, укажите пароль в ConnectionString, как показано в предыдущем примере, либо вызовите функцию SetPassword() прежде, чем открывать новое соединение SQLiteConnection.
Пароль, указанный в ConnectionString, должен быть пустым (cleartext), но пароли, предоставляемые в функции SetPassword(), могут быть двоичными байтовыми массивами.

// Opens an encrypted database by calling SetPassword()
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3");
cnn.SetPassword(new byte[] { 0xFF, 0xEE, 0xDD, 0x10, 0x20, 0x30 });
cnn.Open();
// The connection is now usable


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

Если вы прикрепляете зашифрованную базу данных с помощью пароля открытого текста:

// Attach to a database using a different key than the main database
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3");
cnn.Open();
cmd = new SQLiteCommand("ATTACH DATABASE 'c:\\pwd.db3' AS [Protected] KEY 'mypassword'", cnn);
cmd.ExecuteNonQuery();


Чтобы подключить зашифрованную базу данных с помощью двоичного пароля:

// Attach to a database encrypted with a binary key
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3");
cnn.Open();
cmd = new SQLiteCommand("ATTACH DATABASE 'c:\\pwd.db3' AS [Protected] KEY X'FFEEDD102030'", cnn);
cmd.ExecuteNonQuery();


Используйте SQLCipher, это расширение для SQLite, которое обеспечивает прозрачное 256-битное шифрование AES файлов базы данных. sqlcipher.net
  • Не нравится
  • 0
  • Нравится
Просмотров: 4 363 Напечатать Жалоба
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.
Написать комментарий
Ваше Имя:
Ваш E-Mail:
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent
Код: Кликните на изображение чтобы обновить код, если он неразборчив
Введите код: