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

Why is Sqlcipher not encrypting a Sqlite database through a .NET Core app?

提问人:JohnB 提问时间:8/2/2023 最后编辑:marc_sJohnB 更新时间:8/2/2023 访问量:90

问:

这里的新手尝试将 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);");

此时,应创建一个加密的数据库文件。

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

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 核心 SQLCIPHER XPO

评论

0赞 Stephen Lombardo 8/2/2023
对交叉帖子的回应:discuss.zetetic.net/t/...

答: 暂无答案