SQLiteデータベースバージョン3をC#Windowsアプリケーションで使用しています。クライアントがプログラムファイルフォルダーからSQLiteデータベースファイルを開かないように、パスワードまたはその他の暗号化方法を使用してSQLiteデータベースファイルを暗号化したいです。
ランタイム暗号化の方法は必要ありません。クライアントがプログラムファイルからデータベースファイルを開こうとしたときに、データベースファイルにパスワードフィールドを表示させたいだけです。ありがとうございます。
編集
コードから暗号化した場合、インストールが完了し、dbファイルがプログラムファイルに転送されたときにクライアントが開くことができます。その後、プログラムを開いて暗号化を実行しますか?
私はSQLiteバージョン3を使用しています。あなたはそれをしなければなりません:
//if the database has already password
try{
string conn = @"Data Source=database.s3db;Password=Mypass;";
SQLiteConnection connection= new SQLiteConnection(conn);
connection.Open();
//Some code
connection.ChangePassword("Mypass");
connection.Close();
}
//if it is the first time sets the password in the database
catch
{
string conn = @"Data Source=database.s3db;";
SQLiteConnection connection= new SQLiteConnection(conn);
connection.Open();
//Some code
connection.ChangePassword("Mypass");
connection.Close();
}
その後、ユーザーがデータベースを開こうとした場合。管理者によって保護されているか、データベースが暗号化されているか、データベースまたは破損したファイルではないと表示されます。
この中に見つかりました フォーラム そのことを示す投稿..
Standard SQLite3 API doesn't offer any form of protection and relies only on underlying OS privileges mecanism (if any) for "security". If you have an existing SQLite-style database which uses a specific API to gain access, then you should use this particular (non-standard) API.
SQLiteに何らかの拡張機能を使用できる/使用したい場合は、 SQLite Encryption Extension(SEE) または SQLite Crypt =
ただし、データベースのパスワードを変更/設定することはできますSQLite.Dataを使用この記事 に示すように。
エディターとしてsqlitestudio.pl
を試してください。
[データベースの種類]で、接続中にSystem.Data.SQLite
を選択します。
残念ながら、SQliteファイルのパスワードは、コードからのみ追加、削除、または変更できます。そのためには、System.Data.SQLite
名前空間が必要です。これにより、メソッド、アダプター、接続などが提供されます。
sq-lite
.netプロバイダー(System.Data.SQLite)の組み込み暗号化を使用できます。これを試して:
http://sqlite.phxsoftware.com/forums/t/130.aspxここにリンクの説明を入力してください
または使用: