我正在尝试使用csharp-sqlite在Windows Phone上使用SQLite。我有一个现有的加密数据库,需要传递密码,但在传递字符串时不起作用。我发现this thread但它说我需要传递一个32字节的十六进制密钥,但是如何将现有的字符串转换为一个34字节的十六进制密钥呢?
由于
正如评论中所述,如果数据库未加密并且我删除了“密码”部分,这里的当前代码可以正常使用数据库。一旦它被加密,似乎就会抛出一个错误(例如表X不存在,即使它没有加密时同样的SQL语句也可以)并且我认为我已经将它调试到了库的事实我正在使用似乎无法接受字符串密码并需要一个hexkey。
using (var conn = new SqliteConnection("data source=file:db.db3,Password=mypwd"))
{
}
我尝试过各种各样的连接字符串组合,包括添加Version = 3和使用分号代替逗号。
答案 0 :(得分:0)
我还没有使用SqlCipher,但是sample code on their website没有使用集成到连接字符串中的密码,但之后在连接上设置:
conn.ConnectionString = "Data Source=sqlcipher.db;Pooling=false;";
((SQLiteConnection)conn).SetPassword("secret");
conn.Open();
如果可以通过连接字符串分配密码,您可能需要使用分号而不是逗号来分隔值。
答案 1 :(得分:0)
According to this post,无法对csharp-sqlite库使用System.Data.SQLite加密。