encrypted SQLITE database

Hello all,

SQLITE database, which is incorporated into Xojo can be fully encrypted. This is a big advantage. For web applications, as Xojo is compiled, I guess it’s hard to steal the key.

This encryption method is specific to Xojo or is it this one? :


This will allow me to know if the encrypted database can be used after with the MBS SQL plugin.

In your experience, what do you think of the encrypted database? is weaker and slower?


As far as I know the encryption is the SQLite AES encryption and not Xojo specific.

I think encrypted databases are very useful and I use it all the time in my Xojo applications. Haven’t had any noticeable problems with speed, but most of my databases aren’t very large though.

Thank you Alwyn!

Other people have experienced a sqlite encrypted database?

I use them all the time and haven’t had any problems so far…

We license the encryption from Dr Hipp so yes it is that one

Thank you Ken and Norman!

Anyone else know how much of a performance penalty there is with encryption on smaller databases, say 3000 records, 15 or so tables, with 30 or so fields?

I’d say negligible. I’ve got a WE app with a table in an encrypted SQLite database with going on 200K records and this isn’t even on the radar for performance issues.

This is a bit of an old thread, but pertinent to my question: I notice that the see library implements several encryption algorithms, namely:
AES-128 in OFB mode
AES-128 in CCM mode
AES-256 in OFB mode

I need to take encrypted sqlite database files created in a Xojo desktop application and share them with a non-xojo application. The external app has access to encrypted sqlite database via the “sqlcipher” library (an open-source implementation of database level encryption that uses the same hooks as see). SQLCipher offers several flavors of encryption, but all are based on the aes-256 ciphers. It does support aes-256-ofb mode, so if that is what Xojo uses I’m all set…

Which cipher does Xojo use? Can I set this myself?


Nevermind - looks like it is using AES-128.

Ok, I can’t seem to get one one of my encrypted database files to open in the external application. The docs for SQLiteDatabase just say it is using “AES-128”, but does not specify which flavor… is it OFB or CCM? The SEE library supports both.


Unfortunately it’s not that easy: The encryption algorithm may be the same but the scheme how it is applied to file is incompatible. To open SEE encrypted database you need a SEE licensed version of sqlite.

Maybe the best option is to make a helper application (with xojo) that first decrypts the sqlite database and then encrypts it using sqlcipher…?

Hi Mikko - Thanks for the suggestion. I’ve considered that, but am currently leaning towards either writing the whole web side of things in WE, or else writing it all in LAMP, with the clients decrypting the data from the SQLite database, then re-encrypting for transmission over https to the LAMP server.