Sqlite-net: SQLite encryption/password protected

Created on 21 Jul 2015  路  19Comments  路  Source: praeclarum/sqlite-net

Nowadays, with praeclarum/sqlite-net, are there any way to encrypt an unencrypted database-file and/or open/connect to an already encrypted database-file ?

If it is not ready yet, will be very complex to implement it ?

Thanks.

Feature

All 19 comments

+1 on this please. Any information would be great.

+1

+1

Same here

+1

1

+1

+1
Goes without saying, the System.Data.Sqlite implementation uses it (https://system.data.sqlite.org/) - which i use for Desktop apps. And i'd LOVE to see it cross over into yours, which i use for mobile development. It definitely helps as an extra layer of security.

+1, I would definitely love that too

+1

I have to admit I'm pretty ignorant of the encryption options out there for sqlite.

I've seen on other bugs (#476) that SQLCipher is brought up and that there would be some benefit to supporting them as a driver.

Would this be sufficient, or are there better approaches you would like to see implemented?

It's worth it as a start.

This is being worked on in #597

I could use some help testing this out. Would you mind grabbing sqlite-net-sqlcipher 1.5.176-beta from nuget and testing with the new SetKey methods on the connection? Thanks!

Just a heads up when I tested the new nuget out,
I use SQliteExtensions which has a dependency on Sqlite-Net-PCL so it couldnt cope with conflicting dlls.

I therefore had to revert to the old way of doing it outlined here: https://github.com/praeclarum/sqlite-net/issues/508#issuecomment-301905452

Don't think its anything you can do in your library to fix that but its possibly worth noting

Since 1.5, the https://www.nuget.org/packages/sqlite-net-sqlcipher package is available. The API is changing a bit in 1.6.

Happy encrypting!

Hi,
I am trying to use -> sqlite-net-sqlcipher 1.6.292
in my winforms c# application for storing some client-side sensitive information, which I do not intend to save on our server.

When I try to open my sqlite db which is encrypted (password protected) - using SQLCipher 4 defaults method, I am able to open the same database using the DB Browser (SQLCipher) GUI...

While I try it using C# with following code

var databasePath = Path.Combine(Application.StartupPath, "profile.db");
var options = new SQLiteConnectionString(databasePath, true, key: "[email protected]");
conn = new SQLiteAsyncConnection(options);

I get following error:
SQLiteException: file is not a database

Can you please suggest, whats best way to get through this,.?

using SQLCipher 4 defaults

This is an issue I assume, I used SQLCipher 3 defaults and the problem is solved.
Why not support the better cipher methods as well?

@nbaua , you can check out my test repo as it may give you some assistance. The repo demos SQLite-Net and SQLite-Net-SQLCipher features using unit tests.
https://github.com/DamianSuess/Test.SQLite.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Freddixx picture Freddixx  路  4Comments

yaliashkevich picture yaliashkevich  路  3Comments

plamen-i picture plamen-i  路  6Comments

rynjas picture rynjas  路  3Comments

newtoncw picture newtoncw  路  7Comments