返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >.NET+Sqlite支持加密的操作方法
  • 194
分享到

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

2024-04-02 19:04:59 194人浏览 薄情痞子
摘要

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

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

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

--结束END--

本文标题: .NET+Sqlite支持加密的操作方法

本文链接: https://lsjlt.com/news/161196.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • .NET+Sqlite支持加密的操作方法
    Sqlite SQLite 来源于公共领域 SQLite Is Public Domain、 确保代码不会受到任何专有或许可内容的污染,没有任何来自互联网上的未知来源复制。即全是原创...
    99+
    2024-04-02
  • Android SQLite数据库加密的操作方法
    一、前言 SQLite是一个轻量级的、跨平台的、开源的嵌入式数据库引擎,也是一个关系型的的使用SQL语句的数据库引擎, 读写效率高、资源消耗总量少、延迟时间少,使其成为移动平台数据库...
    99+
    2024-04-02
  • SQLite支持哪些操作系统
    SQLite 是一个零配置的、自包含的、无服务器的 SQL 数据库引擎。它的设计目标是实现轻量级、快速、可靠和易于使用的数据库解决方...
    99+
    2024-04-09
    SQLite
  • ssl支持哪些加密算法
    ssl支持的加密算法有:DES:数据加密标准,速度较快,适用于加密大量数据的场合。RSA:它是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的。SHA:安全散列算法,它是非可逆加密的,一般用于数据校验传输过程中是否被修改过。...
    99+
    2024-04-02
  • SSH 服务支持弱加密算法
    漏洞扫描有SSH 服务支持弱加密算法,解决方案有两个: 方案一:修改 SSH 配置文件,添加加密算法: vi /etc/ssh/sshd_config 最后添加一下内容(去掉 arcfour、arcfour128、arcfour256 等弱...
    99+
    2023-09-03
    ssh linux 服务器
  • sqlite数据加密的方法是什么
    SQLite提供了一种称为SQLCipher的加密扩展,可以用于对数据库进行加密。这是SQLite的一个第三方扩展,它提供了对数据库...
    99+
    2024-04-09
    sqlite
  • python 操作sqlite数据库的方法
    目录前言简单介绍创建或连接数据库游标创建表插入查询查询总数查询所有查询第一条分页查询更新删除总结前言 sqlite的官网 sqlite.org/index.html SQLite 作为一个SQL数据库引擎,是由C语...
    99+
    2022-06-02
    python 操作sqlite python 操作数据库
  • python栈支持的操作示例
    这篇文章将为大家详细讲解有关python栈支持的操作示例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、long(长整...
    99+
    2023-06-14
  • Python正确调用 jar 包加密得到加密值的操作方法
    前言 在做接口自动化的时候,经常会遇到一些参数是需要加密的,比如密码参数。 加密规则一般开发也不愿意告诉你,会直接给你一个jar包,让你调用jar包得到加密值,在jmeter上是可以直接引用jar包的,但python...
    99+
    2022-06-02
    Python 调用jar 包加密 Python jar 包加密
  • .NET Core支持Cookie和JWT混合认证、授权的方法
    目录前言Cookie认证JWT认证滑动过期思考扩展总结前言 为防止JWT Token被窃取,我们将Token置于Cookie中,但若与第三方对接,调用我方接口进行认证、授权此时仍需将...
    99+
    2024-04-02
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据...
    99+
    2022-06-06
    方法 sqlite数据库 SQLite Android
  • C#操作SQLite数据库方法小结
    一、SQLite介绍 1、SQLite 简介 SQLite是一个开源、免费的小型RDBMS(关系型数据库),能独立运行、无服务器、零配置、支持事物,用C实现,内存占用较小,支持绝大数...
    99+
    2024-04-02
  • 关于Java 项目封装sqlite连接池操作持久化数据的方法
    Sqlite sqlite是C实现的一个开源SQL引擎,其api提供sql语法支持,通过sql解析后对存储层的磁盘文件进行操作,完整配置的sqlite库小于400kb,多用于移动端应...
    99+
    2024-04-02
  • python支持的操作系统是什么
    这篇文章主要介绍“python支持的操作系统是什么”,在日常操作中,相信很多人在python支持的操作系统是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python支持的操作系统是什么”的疑惑有所帮助!...
    99+
    2023-07-05
  • python支持的操作系统有哪些
    python支持的操作系统有Linux、OSX和windows以及所有主要的操作系统;python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言;python也可用于可定制化软件中的扩展程序语言,其丰富的标准库,还提供了适用...
    99+
    2023-05-14
    python
  • PyQt5支持的操作系统有哪些
    PyQt5 是一个流行的 Python GUI 库,支持多个操作系统,其中包括但不限于以下几种: Windows:PyQt5 可以...
    99+
    2024-03-12
    PyQt5
  • SpringBoot集成Jasypt敏感信息加密的操作方法
    目录前言哪些信息需要加密敏感信息加密的作用选择加密的组件项目集成Jasypt方式方式一方式二方式三Springboot整合Jasypt实战一、引入依赖二、配置文件中添加Jasypt配...
    99+
    2024-04-02
  • C# .NET使用操作符的方法有哪些
    这篇文章主要介绍“C# .NET使用操作符的方法有哪些”,在日常操作中,相信很多人在C# .NET使用操作符的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C# .NET使用操作符的方法有哪些”的疑...
    99+
    2023-06-03
  • MacOS12, M2,Monterery,自带的Apache添加PHP8.0.28支持方法
    由于是在国内,首先切换到国内的brew镜像源. export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git" export HOMEBREW_CORE_GIT_...
    99+
    2023-09-01
    php 开发语言
  • Impala支持哪些类型的连接操作
    Impala支持多种类型的连接操作,包括: 内连接(Inner Join):仅返回两个表之间满足连接条件的行。 左连接(Left ...
    99+
    2024-03-06
    Impala
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作