.net - 带有加密密码的 Sqlite 连接字符串
问题描述
我有一个使用"SQLite Cipher"的加密数据库。当我尝试使用连接字符串连接到数据库时,会出现以下错误消息:
'SQL 逻辑错误不能使用“密码”连接字符串属性:库不是使用加密支持构建的。'
Imports System.Data.SQLite
Public Class frm_projects
Dim dtset As New SQLiteConnection("Data Source=Setting.db;Password=m;")
Private Sub frm_projects_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Try
If dtset.State = ConnectionState.Closed Then
dtset.Open()
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information, "Warning")
End Try
End Sub
End Class
解决方案
问题的来源
我认为此错误的实际原因是自System.Data.SQLite
版本~1.0.113.1以来“旧版 CryptoAPI”缺乏支持。
它是在以下提交中完成的: https ://system.data.sqlite.org/index.html/info/1dd56c9fd59a10fd
我们能做什么?
手动使用支持 CryptoAPI 的最新 NuGet 版本 - 1.0.112.2。
注意 -必须手动完成 - 通过编辑或编辑
PackageReference
。原因是旧版本未从NuGet 提要中列出(!) :csproj
config.packages
购买
SQLite Encryption Extension
(SEE
) 的永久源代码许可证,一次性费用为 2000 美元(截至 2021 年 2 月)-购买链接使用
SQLCipher
- SQLCipher 是一个 SQLite 扩展,提供数据库文件的 256 位 AES 加密 - GitHub 源(自己没有测试过!)
数据源
推荐阅读
- ansible - Ansible 同步模块返回 127
- python - 如何在python中的另一个字符串中搜索带有空格的字符串?
- angular - Angular 如何制作一个打开不同对话框的 btn-cell-renderer 组件
- css - 如何使用 CSS 网格获得具有 5 个元素的 3 列 2 行对称布局?
- html - 每行 3 个项目,带有 flexbox 和间隙
- vb.net - VB.NET 十进制。尝试解析点和逗号值
- android - android 11 上具有范围存储的 Whatsapp 状态
- python - 对特定 X 值的随机森林预测
- sql - SQL - 将记录转换为列
- android - 如何使用 Jetpack 撰写应用栏后退按钮