0

我正在尝试使用 csharp-sqlite 在 Windows Phone 上使用 SQLite。我有一个现有的加密数据库,需要输入密码,但在传递字符串时它不起作用。我找到了这个线程,但它说我需要传递一个 32 字节的十六进制密钥,但是如何将现有的字符串转换为 34 字节的十六进制密钥?

谢谢

正如评论中所问的,如果数据库未加密并且我删除了“密码”部分,这是当前代码在数据库中可以正常工作。一旦它被加密,似乎就会抛出一个错误(例如表 X 不存在,即使它在没有加密的情况下工作相同的 SQL 语句),我想我已经将它调试到库的事实我使用的似乎无法接受字符串密码并且需要一个十六进制密钥。

 using (var conn = new SqliteConnection("data source=file:db.db3,Password=mypwd"))
 {
 }

我尝试了连接字符串的各种组合,包括添加 Version=3 和使用分号而不是逗号。

4

2 回答 2

0

我没有使用过 SqlCipher 但他们网站上的示例代码没有使用集成到连接字符串中的密码,而是在之后设置连接:

conn.ConnectionString = "Data Source=sqlcipher.db;Pooling=false;";
((SQLiteConnection)conn).SetPassword("secret");
conn.Open();

如果可以通过连接字符串分配密码,您可能需要尝试使用分号而不是逗号来分隔值。

于 2013-02-16T14:22:23.227 回答
0

根据这篇文章,不可能将 System.Data.SQLite 加密与 csharp-sqlite 库一起使用。

于 2013-02-16T21:11:26.670 回答