Lea*_*der 5 c# sqlite encryption uwp
我在尝试加密 SQLite 数据库时遇到问题。到目前为止,我已经尝试了很多方法,但似乎都不起作用。
SQLiteConnection.SetPassword()提供的(不受支持的)方法System.Data.SQLite,但是一段时间以来,该方法已从System.Data.SQLite包中删除。尝试采用较旧的 SQLite 版本很困难,因为 UWP 是 UAP 而不是 .NET Framework。Microsoft.Data.Sqlite.Core并使用此文档来安装SQLitePCLRaw.bundle_e_sqlcipher包并调用SQLitePCL.Batteries_V2.Init()或SQLitePCL.raw.SetProvider(new SQLitePCL.SQLite3Provided_e_sqlcipher())。那么执行查询PRAGMA KEY = 'password'不会加密数据库文件。SQLitePCLRaw.bundle_sqlcipher,但...e_sqlcipher在这种情况下却...V2.Init()不起作用。sqlite-net-sqlcipher,但是执行SQLiteConnection.Query<int>("PRAGMA key = 'password'");也不加密数据库。当尝试使用查询数据库时,key: "password"将导致The file is no database错误,表示数据库缺少密码。如何加密 UWP 的 SQLite 数据库,最好使用,Microsoft.Data.Sqlite但其他选项也可以。
我主要也在寻找一种免费的方式来实现这一目标,因为 900 美元对于我正在从事的项目来说远远超出了预算。
尽管我没有对列出的每个包进行测试,但我找到了问题的答案:
首先,我按照这个问题的答案中的说明进行操作。然后,我没有尝试使用PRAGMA key = 'password'现有数据库,而是创建了一个key = 'password'在SQLiteConnectionString构造函数中指定的新数据库。
这为我创建了一个新的、已经加密的数据库。
编辑:我现在也用Microsoft.Data.Sqlite.Coreand进行了测试SQLitePCLRaw.bundle_e_sqlcipher,结果发现,还创建了一个新数据库,并结合指定Password = 'password',例如SqliteConnectionStringBuilder将创建一个加密的新数据库。
我在这里发布了一个带有代码的示例项目
| 归档时间: |
|
| 查看次数: |
1022 次 |
| 最近记录: |