sqlite
来源于公共领域 sqlite is public domain
、
确保代码不会受到任何专有或许可内容的污染,没有任何来自互联网上的未知来源复制。即全是原创的。
虽然是免费的,无需许可证,可用于任何目的,但如果你的公司必须要一个许可证,你也能申请授权https://sqlite.org/purcha/licen.
但不支持加密。如果想支持登录加密,需要另外的扩展sqlite 加密扩展(sqlite encryption extension,),具有读取/写入 aes 加密数据库的附加功能。具体授权可参考 https://www.sqlite.org/prosupport.html
一直以来,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.
创建一个控制台项目,起名 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’.
系统找不到指定的文件。”
创建一个控制台项目,起名 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 条评论) |