提问人:JohnB 提问时间:8/2/2023 最后编辑:marc_sJohnB 更新时间:8/2/2023 访问量:90
为什么 Sqlcipher 不通过 .NET Core 应用加密 Sqlite 数据库?
Why is Sqlcipher not encrypting a Sqlite database through a .NET Core app?
问:
这里的新手尝试将 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”
我觉得我在设置步骤或环境中的某个地方遗漏了一些东西。
有人能帮我指出正确的方向吗?
答: 暂无答案
评论