在SQLCipher之后无法解密sqlite

时间:2015-07-01 11:20:32

标签: sqlite encryption sqlcipher

我正在使用Mac上的SQLCipher加密/解密文件。

这就是我对db:

进行加密的方法
example
├───┐ static
│   ├───┐ js
│   │   ├─── Leaflet.vector-markers.min.js
│   │   └─── Leaflet.vector-markers.js
│   ├───┐ data
│   │   └─── Toulouse.csv
│   └───┐ css
│       ├─── Leaflet.vector-markers.css
│       └─── Leaflet.vector-markers.css.map
├───┐ lib
│   ├─── __init__.py
│   └─── JCDecaux.py
├───┐ templates
│   └─── index.html
├─── serve.py
└─── update.py

然后我尝试打开加密的数据库:

sqlite> ./sqlcipher test.db
sqlite> ATTACH DATABASE 'encrypted.db' AS encrypted KEY 'Sef*DFyds98fhsh2';
sqlite> SELECT sqlcipher_export('encrypted');
sqlite> DETACH DATABASE encrypted;

它给了我这个错误:

sqlite> ./sqlcipher encrypted.db
sqlite> PRAGMA key = 'Sef*DFyds98fhsh2';
sqlite> select * from tables;

有一件事是我的原始db文件是1.6兆字节但加密后它 变成226 KlioByte。

1 个答案:

答案 0 :(得分:0)

如果您输入

sqlcipher --version
你回来了什么?

如果像2.x这样的老东西是个问题。 Building from source为我解决了这个问题。现在应该在3.8.x.x左右。

也很好奇,你有一张叫做'桌子'的桌子吗? sqlcipher有一个内置的方法来执行此

.tables

我想它会说“错误:没有这样的表:表格 “如果是这样的话。