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();
}