SQLCipher - 以编程方式解密数据库
SQLCipher - Decrypt database programmatically
我正在使用 .NET Core 项目来管理加密的 SQLite 数据库,我可以在不加密的情况下以编程方式创建数据库副本,但我没有找到任何示例代码,我什至没有找到知道这是否可能。
我从头开始进行以下项目:
https://github.com/paragpkulkarni/SQLiteEncryptionUsingEFCore
这是最终的解决方案:
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();
}
我正在使用 .NET Core 项目来管理加密的 SQLite 数据库,我可以在不加密的情况下以编程方式创建数据库副本,但我没有找到任何示例代码,我什至没有找到知道这是否可能。
我从头开始进行以下项目: https://github.com/paragpkulkarni/SQLiteEncryptionUsingEFCore
这是最终的解决方案:
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();
}