System.Data.SQLite使用什么Type/Level密码加密

System.Data.SQLite What Type/Level of Password Encryption is used

当使用库 System.Data.SQLite 密码保护您的 SQLite 数据库时,使用什么 type/level 加密?

研究 SQLite 加密时有很多选择,但是当使用上述库从 .NET 应用程序中创建 SQLite 数据库时,它使用什么加密方法?

要在 .NET 代码中加密 SQLite 数据库,只需在连接字符串中提供密码即可。

SQLite Connection String

Data Source= [DBFile.sqlite] ;Version=3;Password= [Password];datetimeformat=CurrentCulture;

如果实现了上述加密SQLite文件的路由,应用了哪种类型的加密?我一直找不到任何说明这一点的文档。

Encryption Options:

I did locate the below link however it does not tell me what I need to know. Unless I'm dense and am missing it.

https://www.bricelam.net/2016/06/13/sqlite-encryption.html

Whosebug Post:

This SO Post here is outdated as it is pre SQLite 3 however it does have some nice documentation on encryption possibilities. One of the answers in this post an individual states that the post is outdated by saying "SQLite3 .Net as built in support for encryption now, which largely invalidates this answer"

What is the built in encryption mentioned above?

SQLite with encryption/password protection

我查看了 the home page 上的 CHM 文档。它几乎没有提到加密。我能找到的唯一信息是在版本历史中,它是这样说的:

1.0.24.3 beta - January 10, 2006

...

  • Added support for database encryption at the pager level. Databases are encrypted using a 128-bit RC4 stream algorithm. To open an existing encrypted database, you may now specify a "Password={password}" text in the ConnectionString, or you may call the SQLiteConnection.SetPassword() function to set the password on an open connection. To encrypt existing non-encrypted databases or to change the password on an encrypted database, you must use the SQLiteConnection.ChangePassword() function. If you use SetPassword() instead of specifying a password in the connection string, or call ChangePassword() you may use a binary byte array or a text string as the password.

...

(强调我的)

快速浏览 RC4 Wikipedia Page 发现 "multiple vulnerabilities have been discovered in RC4, rendering it insecure." 我不相信它。

还值得注意:您所说的加密模块不是 SQLite 的功能,而是 System.Data.SQLite 库提供的扩展。使用它会使您的数据库无法与其他 SQLite 阅读器一起使用。