1. 創建加密和Sqlite 數據庫(已存在的數據我按網上的教程試過.沒成功)
1. 安裝依賴
--這是連接驅動
Microsoft.Data.Sqlite.Core
--這個是加密需要用到的
SQLitePCLRaw.bundle_e_sqlcipher
2. 創建有密碼的數據庫
var connStr = @"Data Source=D:\a\SqLite\DAB.db;";//連接字符串 var conn = new SqliteConnectionStringBuilder(connStr) { Mode = SqliteOpenMode.ReadWriteCreate, Password = "password" }.ToString(); using(var connection = new SqliteConnection(conn)) { connection.Open(); var com = connection.CreateCommand(); com.CommandText = @"CREATE TABLE Users ( ID INTEGER PRIMARY KEY AUTOINCREMENT, UserName TEXT(16), CreateTime TEXT NOT NULL );"; com.ExecuteNonQuery(); }
注意. 建好加密數據庫后需要建一個表才有效.空庫依然可以不使用密碼連接( 已存在的連接不受影響, 在測試中有過幾次能連上庫但打開表時提示不是有效的數據庫 , 表里添加數據后就正常了)
3. 在ef 中使用
添加依賴
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.Sqlite
--如果沒有添加以下包則在字符串添加密碼會提示不支持password 如: You specified a password in the connection string, but the native SQLite library 'e_sqlite3' doesn't support encryption.”
SQLitePCLRaw.bundle_e_sqlcipher
以上添加完成就可以正常使用了,別忘了在連接中添加 Password=你的密碼
或許還有更新方便的方法來做.這里就先只記錄目前試了行之有效的一種方式