0

我正在使用 .NET Core 项目来管理加密的 SQLite 数据库,我可以在不加密的情况下以编程方式创建数据库副本,但我没有找到任何示例代码,我什至不知道这是否可能.

我从以下项目开始: https ://github.com/paragpkulkarni/SQLiteEncryptionUsingEFCore

4

1 回答 1

0

这是最终的解决方案:

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();
        }
于 2020-10-28T08:22:02.943 回答