Шифрование SQLite не работает (Microsoft.Data.Sqlite.Core и SQLitePCLRaw.bundle_e_sqlcipher)C#

Место общения программистов C#
Ответить
Anonymous
 Шифрование SQLite не работает (Microsoft.Data.Sqlite.Core и SQLitePCLRaw.bundle_e_sqlcipher)

Сообщение Anonymous »

Я следую этому руководству:
https://learn.microsoft.com/en-us/dotne ... bs=net-cli
Я использую эту версию .NET:

Код: Выделить всё

9.0.306 [C:\Program Files\dotnet\sdk]
У меня есть база данных Sqlite3.
Некоторые подробности:

Код: Выделить всё

$ file Core.db
Core.db: SQLite 3.x database, last written using SQLite version 3046001, file counter 4732, database pages 524, cookie 0x106, schema 4, UTF-8, version-valid-for 4732
Я запустил:

Код: Выделить всё

dotnet remove package Microsoft.Data.Sqlite
dotnet add package Microsoft.Data.Sqlite.Core
dotnet add package SQLitePCLRaw.bundle_e_sqlcipher
Я могу открыть базу данных с помощью Microsoft.Data.Sqlite без каких-либо проблем и выполнить любой оператор SQL, который захочу, с нормальным поведением.
Когда я запускаю это (как сказано в разделе «Укажите ключ»):

Код: Выделить всё

var connectionString = new SqliteConnectionStringBuilder(baseConnectionString)
{
Mode = SqliteOpenMode.ReadWriteCreate,
Password = password
}.ToString();
Я получаю:

Код: Выделить всё

Unhandled exception. Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 26: 'file is not a database'.
Я предполагал, что сначала мне нужно это сделать (позже в руководстве):

Код: Выделить всё

var commandPassword = connection.CreateCommand();
commandPassword.CommandText = "PRAGMA rekey = MyGreatPassword";
commandPassword.Parameters.Clear();
commandPassword.ExecuteNonQuery();
Это компилируется, запускается, без ошибок. Но когда я повторно открываю свою базу данных со строкой подключения, в которой не указан какой-либо пароль, все работает. И это не должно быть так. Он должен быть зашифрован.
Что мне не хватает?

Подробнее здесь: https://stackoverflow.com/questions/798 ... pclraw-bun
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»