如何在.Net中使用SQLCipher

桑榆肖*_*榆肖物 3 c# sqlite encryption sqlcipher

我想用C#(winform)读取一个SQLCipher数据库,找到一个开源项目SQLitePCL,但是还没有找到这个使用的例子,而且文档也不是很多。有朋友用过这个东西吗,能提供一些例子来帮助我吗?

谢谢你!

Acc*_*ied 5

这适用于 winforms、wpf、asp.net、xamarin.android、xamarin.ios、UWP 和任何其他 .net 项目,因为这是一个跨平台库:

安装 Frank A. Krueger 的 nuget“sqlite-net-pcl”。

使用他的github 页面上的教程。

现在,一旦我们有了数据库和所有的东西。如何加密新建的数据库或打开加密的数据库?

添加 Eric Sink 的 nuget:“SQLitePCLRaw.bundle_sqlcipher”

在代码中,创建 SQLiteConnection 的地方指定加密密钥:

connection = new SQLiteConnection(dbPath, openFlags: SQLiteOpenFlags.ReadWrite | SQLiteOpenFlags.FullMutex | SQLiteOpenFlags.Create);
connection.Query<int>("PRAGMA key=xzy1921");
Run Code Online (Sandbox Code Playgroud)

就是这样。其余部分将像未加密一样工作。

  • 添加 Eric Sink 的 nuget: "SQLitePCLRaw.bundle_sqlcipher" 。之后还需要什么特殊操作呢?SQLite.SQLiteException:“文件不是数据库” (2认同)