0

csharp-sqlite を使用して Windows Phone で SQLite を使用しようとしています。既存の暗号化されたデータベースがあり、パスワードを渡す必要がありますが、文字列を渡すときに機能しません。このスレッドを見つけましたが、32 バイトの 16 進キーを渡す必要があると書かれていますが、既存の文字列を 34 バイトの 16 進キーに変換するにはどうすればよいですか?

ありがとう

コメントで尋ねられたように、データベースが暗号化されておらず、「パスワード」部分を削除した場合にデータベースで正常に動作する現在のコードを次に示します。暗号化されるとすぐに、エラーがスローされるようです (暗号化がない場合に同じ SQL ステートメントが機能するにもかかわらず、テーブル X が存在しないなど)。私が使用しているのは、文字列パスワードを受け入れることができないようで、16 進キーが必要です。

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

Version=3 の追加やコンマの代わりにセミコロンの使用など、接続文字列のさまざまな組み合わせを試しました。

4

2 に答える 2

0

この投稿によると、csharp-sqliteライブラリでSystem.Data.SQLite暗号化を使用することはできません。

于 2013-02-16T21:11:26.670 に答える
0

私は SqlCipher を使用していませんが、彼らの Web サイトのサンプル コードでは、接続文字列に統合されたパスワードを使用していませんが、後で接続に設定されています。

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

接続文字列を介してパスワードを割り当てることができる場合は、カンマではなくセミコロンを使用して値を区切ることをお勧めします。

于 2013-02-16T14:22:23.227 に答える