为什么 Sqlcipher 不通过 .NET Core 应用程序加密 Sqlite 数据库?

问题描述 投票:0回答:0

新手尝试将 Sqlcipher 连接到 .NET Core (Windows) Sqlite 应用程序。我们也在使用 DevExpress XPO。

我尝试镜像 SQLCipher 文档页面中概述的步骤。它运行时没有错误或异常,但它不进行加密。

这是我的代码示例片段:

var unitOfWork =  new UnitOfWork(IDataLayer);
unitOfWork.ExecuteNonQuery($"PRAGMA key = '{myKeyValue}';");
unitOfWork.ExecuteNonQuery($"PRAGMA cipher_license = '{myCipherLicense}';");
unitOfWork.ExecuteNonQuery("CREATE TABLE IF NOT EXISTS Model(id, a,b);");

此时,应该创建一个加密的DB文件。

我尝试在不使用密钥/密码密钥的情况下运行以下命令:

try
{
    var unitOfWork = new UnitOfWork(IDataLayer);
    unitOfWork.ExecuteNonQuery(“INSERT INTO Model (id, a, b) VALUES (‘id’, ‘a’, ‘b’);”);
}
catch (Exception ex)
{
}

我希望此时抛出异常,表明我尝试在没有密钥/密码许可证的情况下访问数据库。

我还可以在 SqliteStudio 中打开生成的数据库并不受限制地查看数据。

这是我引用的 NuGet 包:

PackageReference Include=“DevExpress.Xpo” Version=“23.1.3”
PackageReference Include=“Microsoft.Data.Sqlite.Core” Version=“7.0.9”
PackageReference Include=“SQLitePCLRaw.bundle_e_sqlcipher” Version=“2.1.5”
PackageReference Include=“SQLitePCLRaw.bundle_zetetic” Version=“2.1.5”
PackageReference Include=“System.Data.SQLite” Version=“1.0.117”
PackageReference Include=“zetetic-sqlcipher-windows-fips” Version=“4.5.3”

我觉得我在设置步骤或环境中遗漏了一些东西。

有人可以帮我指出正确的方向吗?

asp.net-core sqlcipher xpo
© www.soinside.com 2019 - 2024. All rights reserved.