日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

.NET+Sqlite如何支持加密

發布時間:2023/12/4 asp.net 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET+Sqlite如何支持加密 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊上方藍字關注我們

.NET+Sqlite如何支持加密

Sqlite

SQLite?來源于公共領域?SQLite Is Public Domain、
確保代碼不會受到任何專有或許可內容的污染,沒有任何來自互聯網上的未知來源復制。即全是原創的。

雖然是免費的,無需許可證,可用于任何目的,但如果你的公司必須要一個許可證,你也能申請授權https://sqlite.org/purchase/license.

但不支持加密。如果想支持登錄加密,需要另外的擴展SQLite 加密擴展(SQLite Encryption Extension,),具有讀取/寫入 AES 加密數據庫的附加功能。具體授權可參考 https://www.sqlite.org/prosupport.html

Sqlite加密

一直以來,FreeSql開發群中,總會有一些開發者來詢問Sqlite加密的問題,事實上,官方提供的Sqlite加密功能是收費的。當連接串上使用Password時,會提示授權問題。
如果底層依賴于System.Data.SQLite.Core,

Could not load file or assembly 'System.Data.SQLite.SEE.License, Version=1.0.115.5, Culture=neutral, PublicKeyToken=433d9874d0bb98c5, processorArchitecture=MSIL

如果底層依賴于Microsoft.Data.Sqlite?也會提示

You specified a password in the connection string, but the native SQLite library 'e_sqlite3' doesn't support encryption.

System.Data.SQLite.Core

創建一個控制臺項目,起名?OvOv.SqliteSystemCore

dotnet new console -n OvOv.SqliteSystemCore cd OvOv.SqliteSystemCore

安裝包

dotnet add package System.Data.SQLite.Core

使用SQLiteConnection創建一個連接,使用Password指定密碼

using System.Data.SQLite;static void Open() {string baseConnectionString = "Data Source=local.db";var connectionString = new SQLiteConnectionStringBuilder(baseConnectionString){Password = "123qwe"}.ToString();using SQLiteConnection? connection = new SQLiteConnection(connectionString);connection.Open(); } Open();

運行項目

dotnet run

就會出現如下錯誤。

System.IO.FileNotFoundException:“Could not load file or assembly 'System.Data.SQLite.SEE.License, Version=1.0.115.5, Culture=neutral, PublicKeyToken=433d9874d0bb98c5, processorArchitecture=MSIL'. 系統找不到指定的文件。”

Microsoft.Data.Sqlite

創建一個控制臺項目,起名?OvOv.SqliteMicrosoft

dotnet new console -n OvOv.SqliteMicrosoft cd OvOv.SqliteMicrosoft

安裝包

dotnet add package Microsoft.Data.Sqlite

使用SqliteConnection創建一個連接,使用Password指定密碼

using Microsoft.Data.Sqlite;static void Open() {string baseConnectionString = "Data Source=local.db";var connectionString = new SqliteConnectionStringBuilder(baseConnectionString){Mode = SqliteOpenMode.ReadWriteCreate,Password = "123qwe"}.ToString();using SqliteConnection? connection = new SqliteConnection(connectionString);connection.Open(); }Open();

運行項目

dotnet run

就會出現如下錯誤。

Unhandled exception. System.InvalidOperationException: You specified a password in the connection string, but the native SQLite library 'e_sqlite3' doesn't support encryption. at Microsoft.Data.Sqlite.SqliteConnection.Open()

其實微軟已經提供了加密的方案。

  • https://docs.microsoft.com/zh-cn/dotnet/standard/data/sqlite/encryption?tabs=netcore-cli

dotnet remove package Microsoft.Data.Sqlite dotnet add package Microsoft.Data.Sqlite.Core dotnet add package SQLitePCLRaw.bundle_e_sqlcipher

重新運行項目 ,就會發現,他正常執行。沒有任何報錯。

有關使用不同的本機庫進行加密的詳細信息,請參閱自定義 SQLite 版本。

我們從 自定義 SQLite 版本上可以看到。

默認情況下,主?Microsoft.Data.Sqlite?包引入?SQLitePCLRaw.bundle_e_sqlite3。若要使用不同的捆綁,請改為安裝?Microsoft.Data.Sqlite.Core?包以及要使用的捆綁包。

SQLitePCLRaw.bundle_e_sqlcipher

提供 SQLCipher 的非官方開放源代碼內部版本。此版本支持加密

完整代碼

  • https://github.com/luoyunchong/dotnetcore-examples/blob/master/Database-Drivers/OvOv.SqliteMicrosoftCore/Program.cs

可點擊原文查看

Nacos配置中心+ASP.NET Core


除了Swagger UI,你還能選擇 IGeekFan.AspNetCore.RapiDoc


github訪問慢,npm 等 半天,dev-sidecar這個工具幫你輕松搞定一切。


點個在看你最好看

總結

以上是生活随笔為你收集整理的.NET+Sqlite如何支持加密的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。