首页 > 作文

.NET+Sqlite支持加密的操作方法

更新时间:2023-04-04 12:18:09 阅读: 评论:0

sqlite

sqlite 来源于公共领域 sqlite is public domain
确保代码不会受到任何专有或许可内容的污染,没有任何来自互联网上的未知来源复制。即全是原创的。

虽然是免费的,无需许可证,可用于任何目的,但如果你的公司必须要一个许可证,你也能申请授权https://sqlite.org/purcha/licen.

但不支持加密。如果想支持登录加密,需要另外的扩展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 asmbly 'system.data.sqlite.e.licen,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.sqlitesystemcorecd ovov.sqlitesystemcore

安装包

dotnet add package system.data.sqlite.core

使用sqliteconnection创建一个连接,使用password指定密码

using system.data.sqlite;static void open(){    string baconnectionstring = "data source=local.db";    var connectionstring = new sqliteconnectionstringbuilder(baconnectionstring)    {        password = "123qwe"军棋对战    }.tostring();    using sqliteconnection? connection = new sqliteconnection(connectionstring);    connection.open();}open();

运行项目

dotnet run

就会出现如下错误。

system.io.filenotfoundexception:“could not load file or asmbly

‘system.data.sqlite.e.licen, version=1.0.115.5, culture=neutral, publickeytoken=433d9874d0bb98c5, processorarchitecture=msil’.

系统找不到指定的文件。”

microsoft.data.sqlite

创建一个控制台项目,起名 ovov.sqlitemicrosoft

dotnet new console -n ovov.sqlitemicrosoftcd ovov.sqlitemicrosoft

安装包

dotnet add package microsoft.data.sqlite

使用sqliteconnection创建一个连接,使用password指定密码

using microsoft.data.sqlite;static void open(){    string baconnectionstring = "data source=local.db";    var connectionstring = new sqliteconnectionstringbuilder(baconnectionstring)    {        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.sqlitec满月红包贺词onnection.open()元宵节是什么节日

其实微软已经提供了加密的方案。

https://docs.mic蓝色水菊rosoft.com/zh-cn/dotnet/standard/data/sqlite/encryption?tabs=netcore-cli

dotnet remove package microsoft.data.sqlitedotnet add package microsoft.data.sqlite.coredotnet 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/databa-drivers/ovov.sqlitemicrosoftcore/program.cs

到此这篇关于.net+sqlite如何支持加密的文章就介绍到这了,更多相关.netsqlite加密内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-04 12:17:12,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/4a626b29dd276b20da78b4ed904b5220.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:.NET+Sqlite支持加密的操作方法.doc

本文 PDF 下载地址:.NET+Sqlite支持加密的操作方法.pdf

标签:就会   创建一个   项目   版本
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图