由于项目上使用了sqlite数据库,之前没有加密,现在由于部分原因需要存储敏感数据,需要加密,大家都知道sqlite虽然是开源的,但是加密却是需要money的。但这难不倒微软,本文将讲解如何进行sqlite加密。由于祖传屎山代码太。。。,这里用dapper对数据交互进行了重写。
源码:https://github.com/xdqt/Dapper-SQLiteDemo.git
首先安装依赖包
通过NuGet安装Dapper(1.12) Microsoft.Data.Sqlite.Core(5.0.7)和 SQLitePCLRaw.bundle_e_sqlcipher(2.0.4)
注意官网显示这个包是依赖.NET standard 2.0的,而.NET standard 2.0要求.net framework 4.6.1

此处code展示如何设置密码
public static string DbFile{get { return Environment.CurrentDirectory + "\\SimpleDb.sqlite"; }}public static SqliteConnection SimpleDbConnection(){var connStr = @"Data Source=" + DbFile;//连接字符串var conn = new SqliteConnectionStringBuilder(connStr){Mode = SqliteOpenMode.ReadWriteCreate,Password = "password"}.ToString();//使用这个方式设置密码,避免sql注入return new SqliteConnection(conn);//创建SQLite连接}
运行程序,数据库就创建完毕了
在设置密码创建数据库后,需要使用ORM执行sql创建表,如果是空数据库,是未加密的,插入数据后,sqlite就已经被加密了,只有输入密码才能查看数据
至于如何查看加密的sqlite Navicat就可以只不过需要稍微配置,不在探讨范围内
文章转载自小兜全糖,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




