Monday, November 14, 2016, 4:23:49 PM, you wrote: Thanks a million Ulrich for all the useful information, I think I got what I need now to make things work the way I want! :)
Richard > Richard, >> Well what I've done is to create an encrypted database with >> SQLite2009 and then use that in my C# project. I just add the password to >> the connection string in my app and then it works right away. > According to the information on the SQLite2009 website > (http://sqlite2009pro.azurewebsites.net/) SQLite2009 supports 2 encryption > methods: > ** Encryption Method is now compatible with wxSQLite3 (AES-128 > bits) and SQLite3 ADO.NET Provider (RSA-MS Crypt) ** > I don't know SQLite2009 from own experience, but I assume that it > allows you to choose which enryption method to use, when creating a > new database. To be compatible with the ADO.NET provider > System.Data.SQLite (http://system.data.sqlite.org) you obviously > have to choose the corresponding encryption method in SQLite2009. >> As far as >> I understand (I'm new to all this) you can also create a database from >> within your app if it's based on system.data.sqlite. >> I just can't edit the table columns or add new ones in SQLite2009 once >> the database is saved or reopened, I can only edit the record data. I >> just read that once created, you can't (or only very limited) edit the >> columns of an SQLite database, you have to create a new database with >> the desired structure and copy the data over. > I have a bit the impression that you mixed up the terms 'database' > and 'table'. A 'database' can contain several tables, and adding new > tables or removing existing tables is simple (and should be > supported by any SQLite administration tool). However, changing the > structure of an existing table in SQLite is more complicated, since > SQLite only supports a limited set of operations to modify a table > definition. Therefore, if you want to add or remove columns from a > table definition, you usually have to create a new table with a > different name, copy the data from the previous table to the new > one, remove the previous table, and rename the new table to the previous name. >> I think that's what DB Browser for SQLite does since you actually can >> reopen and edit the columns and their parameters etc. with it. > Under the hood DB Browser for SQLite performs the above mentioned steps for > you. >> It can also create encrypted databases but the encryption scheme it uses >> is not supported by system.data.sqlite it seems. > Correct. DB Browser for SQLite supports SQLCipher > (https://www.zetetic.net/sqlcipher/), an AES-256 encryption scheme. >> But all in all it works fine, I'm just a bit concerned with the RSA >> encryption in system.data.lite as I've heard it's slow and easy to >> crack, so I'd prefer something else. > The RSA encryption offered by System.Data.SQLite should not be > used, if security is a concern for you. You should prefer an AES encryption > scheme. >> SQLITE Expert looks interesting but I wonder if it also uses the >> built-in RSA encryption in system.data.sqlite? > According to the description on the website > (http://www.sqliteexpert.com/features.html) SQLiteExpert "Supports > password protected databases (requires third party SQLite library - > not included)." That is, you have to provide a SQLite3 DLL > supporting the encryption scheme of your choice. For example, > - SQLCipher (https://github.com/sqlcipher/sqlcipher), you have to build the > DLL yourself > - wxSQLite3 (https://github.com/utelle/wxsqlite3/releases), Windows binaries > are provided > Other SQLite3 management tools that support the wxSQLite3 encryption scheme > are > - SQLite Maestro > (https://www.sqlmaestro.com/en/products/sqlite/maestro/about/) > - wxSQLitePlus (https://github.com/guanlisheng/wxsqliteplus) >> > Richard Andersen wrote: >> > In DB Browser for SQlite I can edit the table but I'm not sure if the >> > SQLCipher encryption used here can be made to work with >> > System.Data.SQlite, or how to do if it can. Does anyone know anything >> > about this? > In principle, it should be possible to replace the SQLite > encryption implementation in System.Data.SQLite by the SQLCipher or > wxSQLite3 implementation, although it might not be trivial. The > latter should be easier to accomplish, since the wxSQLite3 > encryption implementation is self-contained, while SQLCipher > requires the OpenSSL library as well. > Regards, > Ulrich > _______________________________________________ > sqlite-users mailing list > sqlite-users@mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users