SQLCipher - программно дешифровать базу данных

Я использую проект.NET Core для управления зашифрованным SQLite db, и я мог бы создать копию db программно без шифрования, но я не нахожу никакого образца кода, и я даже не знаю, возможно ли это.

Я начинаю с нуля со следующего проекта:https://github.com/paragpkulkarni/SQLiteEncryptionUsingEFCore

1 ответ

Решение

Это окончательное решение:

void DecryptDB(string sourceFilename, string destinationFilename, string password)
        {
            var connectionString = new SqliteConnectionStringBuilder
            {
                DataSource = sourceFilename,
                Mode = SqliteOpenMode.ReadWriteCreate,
                Password = password 
            };

            using var cn = new SqliteConnection(connectionString.ToString());
            cn.Open();

            using var c = cn.CreateCommand();
            c.CommandText = @$"ATTACH DATABASE '{destinationFilename}' AS plaintext KEY '';";
            var r = c.ExecuteNonQuery();

            c.CommandText = @"SELECT sqlcipher_export('plaintext')";
            r = c.ExecuteNonQuery();
        }
Другие вопросы по тегам