I am able to create an encrypted database using pysqlcipher, and open it with pysqlcipher, but somehow I cannot open the same database using the sqlcipher command0line tool installed on Mac OS X when installing sqlcipher from source. For installation, I followed the steps listed here: http://ift.tt/1Bu2ix9 and the versions of libsqlcipher should therefore be the same in both cases.
Test script:
from pysqlcipher import dbapi2 as sqlite
conn = sqlite.connect('test.db')
c = conn.cursor()
c.execute("PRAGMA key='test'")
c.execute('''create table stocks (date text, trans text, symbol text, qty real, price real)''')
c.execute("""insert into stocks values ('2006-01-05','BUY','RHAT',100,35.14)""")
conn.commit()
c.close()
conn = sqlite.connect('test.db')
c = conn.cursor()
c.execute("PRAGMA key='test'")
c.execute("SELECT * FROM stocks;")
print(c.fetchall())
c.close()
Output:
$ python ciphertest.py
[(u'2006-01-05', u'BUY', u'RHAT', 100.0, 35.14)]
Now, I attempt to open the test.db file using the sqlcipher command-line tool:
$ sqlcipher test.db
SQLCipher version 3.8.8.3 2015-02-25 13:29:11
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> PRAGMA key='test';
sqlite> SELECT * FROM stocks;
Error: file is encrypted or is not a database
I'm not sure whether this is an error on my side, or a problem with the pysqlcipher library. I opened an issue to be safe, but any advice would be greatly appreciated!
Aucun commentaire:
Enregistrer un commentaire