eConti - программирование в вопросах и ответах

Шифрование SQLite в универсальных приложениях для Windows

Я использую базу данных SQLite в своем универсальном приложении. Я хочу сделать защиту паролем для файла БД. Я могу установить пароль для файла db. Но когда я пытаюсь его прочитать, появляется ошибка типа «Sqlite26: файл зашифрован или не является файлом базы данных».

Я ссылался на этот URL. Я использую Entity Framework Core в стандартной библиотеке .NET. Можно ли прочитать значение из зашифрованной БД в библиотеке .NET Standard?


  • Целевая версия приложения UWP — 16299. Версия стандартной библиотеки Dotnet — 2.0. Microsoft.EntityFrameworkCore.Sqlite(2.0.1).Microsoft.EntityFrameworkCore.Tools(2.0.1) 13.04.2018
  • Вы имели в виду шифрование с помощью Microsoft.Data.Sqlite.Core и чтение данных с помощью Microsoft.EntityFrameworkCore.Sqlite? Не могли бы вы предоставить больше фрагмента кода о том, как вы шифруете? 20.04.2018

Ответы:


1

У автора статьи, на которую вы ссылаетесь, на самом деле есть ответ здесь, на SO, который также относится к сценарию EF Core. Вы можете открыть базу данных с помощью EF Core в переопределении метода OnConfiguring:

class AppDbContext : DbContext
{
    private SqliteConnection _connection;

    protected override void OnConfiguring(DbContextOptionsBuilder options)
    {
        _connection = new SqliteConnection(_connectionString);
        _connection.Open();

        var command = _connection.CreateCommand();
        command.CommandText = "PRAGMA key = 'password';";
        command.ExecuteNonQuery();

        options.UseSqlite(_connection);
    }

    protected override void Dispose()
    {
        _connection?.Dispose();
    }
}

Kez должен предоставить пароль, как в команде PRAGMA, перед первым запросом на соединение.

16.04.2018
  • Этот подход создает исключение как Microsoft.Data.Sqlite.SqliteException: SQLite Error 26: «файл зашифрован или не является базой данных». 16.04.2018
  • Новые материалы

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

    Время расцвета закончилось
    Большую часть своей карьеры в индустрии программного обеспечения программисты работали с головой в песок. Успех в отрасли требует навыков презентации и обучения других. Ценность улучшенных..

    Будущее сельского хозяйства: новый уровень производительности с современными технологиями
    По мере роста населения мира растет и спрос на продукты питания. Фермеры сталкиваются с растущим давлением необходимости повышать урожайность и максимизировать производительность, манипулируя..

    Состояние совместной фильтрации в 2022 году, часть 1
    ResBeMF: Улучшение прогнозируемого охвата совместной фильтрации на основе классификации (arXiv) Автор: Анхель Гонсалес-Прието , Авраам Гутьеррес , Фернандо Ортега , Рауль Лара-Кабрера..

    Зачем изучать PYTHON в 2022 году !
    Python — востребованный, доступный язык программирования с активным, постоянно растущим сообществом пользователей. Для тех, кто хочет сменить профессию в мире технологий с помощью..

    Решение капч с помощью Puppeteer
    Это руководство предназначено для текстовых кодов, а не для reCAPTCHA Google (см. конец этого сообщения). Требования: Антикапча или любой другой сервис по разгадыванию капчи. Модуль..

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