rigglemania / pysqlcipher3

Python 3 bindings for SQLCipher
zlib License
138 stars 42 forks source link

Documentation how to use with SQLCipher version 3 #24

Closed kwisii closed 3 years ago

kwisii commented 3 years ago

Wanted to decrypt a sqlite database, which was encrypted with SQLCipher version 3. Figured out, that the default behavior of pysqlcipher3 is crypting with SQLCipher version 4. Following SQLCipher documentation (https://www.zetetic.net/sqlcipher/sqlcipher-api/#cipher_compatibility) it's possible to operate with version 3. Therefore it's necessary to execute the PRAGMA statement "after" the PRAGMA key statement.

rigglemania commented 3 years ago

Figured out, that the default behavior of pysqlcipher3 is crypting with SQLCipher version 4.

Is this completely true? Specifically, if the production behavior of this library is to link against whatever you have installed on your machine, is it not inaccurate to say the default behavior to crypt with version 4? Rather the default value is use whatever version you have installed on your machine. Having said that, I think your doc updates are good to call out potential compatibility issues, although I'm not sure I like the description update declaring this library is just for version 4.X

kwisii commented 3 years ago

Okay, I think you are right. Have a previous database which was crypted with version 3. Installing SQLCipher on my machine and building from sources results in version 4. So I will update the Readme!